【问题标题】:Fix 'Incorrect syntax near the keyword 'WHEN'' error in SQL Server?修复 SQL Server 中的“关键字 'WHEN' 附近的语法错误”错误?
【发布时间】:2020-02-18 07:53:39
【问题描述】:

我正在尝试在 case 表达式中实现这两个 when 条件,但它只是没有发生。请帮我解决这个问题?

SELECT 
    BR, CID, TRNDATE, 
    CASE
        WHEN TRNTYPE = '108' THEN -1 ELSE 1 * TrnAmt/100
        WHEN TRNTYPE = '114' THEN (TrnIntAmt - TrnTaxAmt)/100
    END as TransactionAmount
FROM 
    T_TRNHIST

【问题讨论】:

标签: sql-server


【解决方案1】:

查询一定是这样的

SELECT BR, CID, TRNDATE, 
CASE
    WHEN TRNTYPE = '108' THEN -1 
    WHEN TRNTYPE = '114' THEN (TrnIntAmt - TrnTaxAmt)/100
    ELSE 1 * TrnAmt/100
    END as TransactionAmount
FROM T_TRNHIST

完成后,其他情况最终会出现一次

【讨论】:

    【解决方案2】:

    稍作改动,将 ELSE 移到 END 之前

    SELECT BR, CID, TRNDATE, 
    CASE
        WHEN TRNTYPE = '108' THEN -1 
        WHEN TRNTYPE = '114' THEN (TrnIntAmt - TrnTaxAmt)/100
        else 1 * TrnAmt/100
    END as TransactionAmount
    FROM T_TRNHIST
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多