SQL Server中如何确定无法转换为(decimal,float,int)的字段值
我有一个 SQL Server 数据库。
一个字段的值就像
ID VALUE
1 NEGATIF
2 11.4
3 0.2
4 A RH(+)
5 -----
6 >>>>>
7 5.6<
8 -13.9
我想将 VALUE 字段转换为十进制,当然是可转换字段。
什么样的SQL语句可以做到这一点?
如何了解转换时哪个值引发错误?
PS:我认为这可以解决 WHERE VALUE LIKE '[az]'
但如何添加更多过滤器,如 [-+ ()] ?
I have a SQL Server database.
One field has values which are like
ID VALUE
1 NEGATIF
2 11.4
3 0.2
4 A RH(+)
5 -----
6 >>>>>
7 5.6<
8 -13.9
I want to CONVERT VALUE field to decimal, of course convert-able fields.
What kind of SQL statement can do this?
How can I understand which value is raising error while converting?
PS: I think this can solve WHERE VALUE LIKE '[a-z]'
but how can I add more filter like [-+ ()] ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
普通的 ISNUMERIC 是垃圾
+
、-
和。都是有效的
+.
等1e-3
对浮点数有效,但对十进制无效(除非你 CAST 到浮点然后到十进制)对于一个特别神秘但故障安全的解决方案,追加
e0
或.0e0
然后 使用 ISNUMERIC所以
Plain ISNUMERIC is rubbish
+
,-
and. are all valid
+.
etc1e-3
is valid for float but not decimal (unless you CAST to float then to decimal)For a particularly cryptic but failsafe solution, append
e0
or.0e0
then use ISNUMERICSo