日期:2014-05-18 浏览次数:20480 次
提取数字 IF OBJECT_ID('dbo.fn_get_number') IS NOT NULL DROP FUNCTION dbo.fn_get_number GO CREATE FUNCTION dbo.fn_get_number(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^0-9]%',@S) > 0 BEGIN set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'') END RETURN @S END GO declare @tb table (id int,name nvarchar(120)) insert into @tb select 1,'张三 身份证 123456789123456 阿斯蒂芬 ' union all select 2,'李斯 78908978373673 试试' union all select 3,'王五 1236423 aa ' union all select 4,'9875648254236' select dbo.fn_get_number(name) from @tb select * from @tb where LEN(dbo.fn_get_number(name))>=10 GO
------解决方案--------------------
select id ,name
from 表A
where len(name)>10
不知道这个是不是你想要的结果
------解决方案--------------------
SELECT * FROM TB WHERE PATINDEX('%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%', NAME)>0