【问题标题】:T-SQL - How to deal with SELECT If Error Logic [duplicate]T-SQL - 如果错误逻辑如何处理 SELECT [重复]
【发布时间】:2014-11-05 21:13:03
【问题描述】:

我在下面有一个简单的选择语句:

SELECT Code =   Cast([Code] as int)
FROM dbo.table 

我得到一个错误:

转换 nvarchar 值 '?' 时转换失败数据类型 诠释。

我想编写 IFERROR 或 CASE 语句,将错误替换为 -9999 等数字

【问题讨论】:

  • SQL Server 确实正确:'?'不是整数。
  • 我知道这是正确的。我不知道如何处理它。解决方案工作正常。干杯

标签: sql-server tsql


【解决方案1】:
SELECT 
    Code = CASE 
               WHEN ISNUMERIC(Code) = 1 THEN Cast([Code] as int) 
               ELSE -9999 
    END
FROM 
    dbo.table

【讨论】:

    【解决方案2】:
    SELECT Code = Cast((case when [Code] = '?' then -9999 else [Code] end) as int)
    FROM dbo.table 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 2013-03-09
      • 2015-02-12
      相关资源
      最近更新 更多