T-SQL从字符串中提取十进制值

T-SQL从字符串中提取十进制值,第1张

T-SQL从字符中提取十进制值

另一种方法是删除字符串之后和字符串之前的字符。下面的表达式可以做到这一点:

select val,        stuff(stuff(val+'x', patindex('%[0-9][^0-9.]%', val+'x') + 1, len(val), ''       ), 1, patindex('%[0-9]%', val) - 1, '')from (values ('test123 xxx'), ('123.4'), ('123.4yyyyy'), ('tasdf 8.9'), ('asdb'), ('.2345')) as t(val);

内部

stuff()
删除数字后面的字符。的
+'x'
处理时的数量为在字符串的末尾时出现的问题。第一部分处理编号之前的部分。

这确实假定字符串中只有一个数字。您可以使用where子句检查此内容,例如:

where val not like '%[0-9]%[^0-9.]%[0-9]%'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存