我正在使用SQL Server 2008 R2函数ISNUMERIC()来确定字符串是否为小数。 它正在回归' 1'当小数点为逗号或逗号和句点时。我可以解决这些问题,但这个查询是SSRS报告的一部分,将在许多用户之间分发,我无法纠正所有问题。
我可以使用什么来代替ISNUMERIC()来确定字符串是否是正确形成的小数?我不能使用TRY_PARSE(),因为它在SQL SERVER 2012中可用,我在2008 R2。
更新 我想用PATINDEX()替换ISNUMERIC()来识别小数。 这两个例子都返回0
SELECT PATINDEX('9,0', '%[0-9]%.%[0-9]%')
SELECT PATINDEX('9.0', '%[0-9]%.%[0-9]%')
我做错了什么?
答案 0 :(得分:1)
PATINDEX的参数值是反向的。这对你有用......
SELECT PATINDEX('%[0-9]%,%[0-9]%', '9,0')
SELECT PATINDEX('%[0-9]%.%[0-9]%', '9.0')
诺尔