日期:2014-05-17 浏览次数:20510 次
----------------------------
-- Author :TravyLee(物是人非事事休,欲语泪先流!)
-- Date :2012-12-03 16:30:03
-- Version:
-- Microsoft SQL Server 2012 - 11.0.2100.60 (Intel X86)
-- Feb 10 2012 19:13:17
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
go
create table [test]([col] varchar(16))
insert [test]
select '工会第3号文件' union all
select '工会第2018号文件' union all
select '工会第544号文件' union all
select '工会第29号文件' union all
select '工会第172号文件' union all
select '工会第63号文件'
go
;with t
as(
select substring(col+' ',patindex( '%[0-9]% ',col+' '),len(col+' ')) as col1
from test
)
select max(cast(left(col1+' ',patindex( '%[^0-9]% ',col1+' ')-1) as int)) as col from t
/*
col
-----------
2018
(1 行受影响)
*/
--CREATE TABLE [test] ( [col] VARCHAR(16) )
--INSERT [test]
-- SELECT '工会第3号文件'
-- UNION ALL
-- SELECT '工会第2018号文件'
-- UNION ALL
-- SELECT '工会第544号文件'
-- UNION ALL
-- SELECT '工会第29号文件'
-- UNION ALL
-- SELECT '工会第172号文件'
-- UNION ALL
-- SELECT '工会第63号文件'
SELECT MAX(CONVERT(INT, SUBSTRING([col], 4,
PATINDEX('%[^0-9]%',
SUBSTRING([col], 4, LEN(col))) - 1)))
FROM [test]
/*
-----------
2018
(1 行受影响)
*/