首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

着急提取数据,该怎么解决

2012-03-31 
着急提取数据例如我一张表中的数据idname1张三 身份证 123456789123456 阿斯蒂芬2李斯 78908978373673 试

着急提取数据
例如我一张表中的数据

 id name 
 1 张三 身份证 123456789123456 阿斯蒂芬 
 2 李斯 78908978373673 试试 
 3 王五 1236423 aa 
 4 9875648254236 




需要用语句来提取出里面超过10位的数字,存储过程也行,怎么提取?


[解决办法]

SQL code
提取数字IF OBJECT_ID('dbo.fn_get_number') IS NOT NULLDROP FUNCTION dbo.fn_get_numberGOCREATE FUNCTION dbo.fn_get_number(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN @SENDGOdeclare @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 @tbselect * from @tb where LEN(dbo.fn_get_number(name))>=10GO
[解决办法]
select id ,name
from 表A
where len(name)>10

不知道这个是不是你想要的结果
[解决办法]
SQL code
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 

热点排行