专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

MSSQL 提取数字

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:05:17       共计:3607 浏览
我用的是SQL2000,有一个表TA,字段如下:
ID       SP
0001    20.5
0002    HH32
0003    HK45D
0004     120
0005    中45
0006    *43万
……
SP字段中含用纯数字,也有中文加数字,也有符号加数字,也有英文加数字,而且数字和长度的位置也不固定。现在我想返回一列,在列中提取SP列中的数字部份。
请各位高手帮助。
补充一下:20.5是一个数字。 一个点的是数字,二个点的是字符。 
SP的字段类型varchar。
fupx2008的答案在运行时提示,“服务器: 消息 245,级别 16,状态 1,过程 GetNumber,行 9
将 varchar 值 '485Ⅱ' 转换为数据类型为 int 的列时发生语法错误。”未能全部查询出信息。 

 按“一力感冒清”的方法,返回有点的列为NULL。还是有问题。


解决方法:

create function dbo.GetNumber (@S varchar(100))returns intAS 
begin    
while PATINDEX('%[^0-9]%',@S)>0        
  begin               
 set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')          
end   
 return cast(@S as int)end
GO
----测试 select dbo.GetNumber('dfdfd4544545') 输出为:4544545
 -----select dbo.GetNumber(SP) from ta 
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:JS中的getElementsByName()的作用方法 | ·下一条:MSSQL中游标的使用

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有