ISNUMERIC()不适用于小数

时间:2017-02-03 14:59:10

标签: sql-server-2008-r2 isnumeric

我正在使用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]%')

我做错了什么?

1 个答案:

答案 0 :(得分:1)

PATINDEX的参数值是反向的。这对你有用......

SELECT PATINDEX('%[0-9]%,%[0-9]%', '9,0')
SELECT PATINDEX('%[0-9]%.%[0-9]%', '9.0')

诺尔