【问题标题】:Check if a variable contains any non-numeric digits in SQL Server检查变量是否包含 SQL Server 中的任何非数字数字
【发布时间】:2013-08-13 20:40:41
【问题描述】:

我有一个如下查询:-

DECLARE @rptID VARCHAR(8)
SET @rptID = (SELECT reportID FROM Reports)

一般 @rptID 包含数字,如“00001234”等。但是有没有办法验证变量 @rptID 是否包含任何非数字值.

例如。

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

【问题讨论】:

标签: sql sql-server-2000


【解决方案1】:

检查任何不在 0 到 9 范围内的字符

^ is not in LIKE expressions

IF @rptID LIKE '%[^0-9]%'
   --throw error 

【讨论】:

  • 您的字符串缺少结尾 '
  • 仅供我自己将来参考:LIKE '%[^0-9]%' 将空白视为整数,而NOT LIKE '%[0-9]%' 将其视为非整数。
【解决方案2】:

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

mentioned link

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    相关资源
    最近更新 更多