在SQL Server中检查变量是否包含任何非数字数字

9
我有一个如下的查询问题:
DECLARE @rptID VARCHAR(8)
SET @rptID = (SELECT reportID FROM Reports)

通常 @rptID 包含像'00001234'等数值数字。但有没有办法验证变量@rptID中是否包含任何非数值字符。

例如:

IF (@rptID contains non-numeric value)
            THEN throw Error

可能是重复的问题:如何检测字符串中是否至少包含一个数字? - ebram khalil
相关:https://dev59.com/tV4c5IYBdhLWcg3wD2nC - Himanshu
2个回答

26

2
您的字符串缺少结尾'。 - eKek0
仅供我自己日后参考:LIKE '%[^0-9]%' 将把空格视为整数,而 NOT LIKE '%[0-9]%' 则将其视为非整数。 - Himanshu

0

如果您使用的是2008年或之后的版本,MSSQL中还有一个ISNUMERIC函数。

提到的链接

IF (not ISNUMERIC(@rptID) = 1)
    THEN throw Error

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接