sql-server – 如何确定SQL Server中无法转换为(decimal,float,i
发布时间:2020-12-12 16:34:37 所属栏目:MsSql教程 来源:网络整理
导读:我有一个SQL Server数据库. 一个字段有值 ID VALUE 1 NEGATIF 2 11.4 3 0.2 4 A RH(+) 5 ----- 6 7 5.6 8 -13.9 我要将CONVERT VALUE字段转换为十进制,当然可以转换字段. 什么样的SQL语句可以做到这一点? 如何理解在转换时哪个值会引起错误? PS:我认为这可
我有一个SQL Server数据库.
一个字段有值 ID VALUE 1 NEGATIF 2 11.4 3 0.2 4 A RH(+) 5 ----- 6 >>>>> 7 5.6< 8 -13.9 我要将CONVERT VALUE字段转换为十进制,当然可以转换字段. >什么样的SQL语句可以做到这一点? PS:我认为这可以解决像'[a-z]’,但是如何添加像[ – ()]更多的过滤器? 解决方法平原ISNUMERIC是垃圾>空字符串,– 和.都是有效的 对于一个特别隐蔽但是故障的解决方案,请附加e0或.0e0,然后使用ISNUMERIC SELECT ISNUMERIC(MyCOl + 'e0') --decimal check,ISNUMERIC(MyCOl + '.0e0') --integer check 所以 SELECT ID,VALUE,CAST( CASE WHEN ISNUMERIC(VALUE + 'e0') = 1 THEN VALUE ELSE NULL END AS decimal(38,10) ) AS ConvertedVALUE FROM Mytable (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |