mssql是一种语法,语法中包含'if'关键词。

18 浏览
0 Comments

mssql是一种语法,语法中包含'if'关键词。

这个问题已经有了答案

如何在SQL SELECT语句中执行IF...THEN语句?

我在mssql中有以下代码:

SELECT
    t1.Id,
    t2.Id,
    t1.QuantityIn,
    t1.PriceIn,
    t2.QuantityOut,
    (If (t2.QuantityOut - t1.QuantityIn)=0
        THEN t2.QuantityOut
    Else t2.QuantityOut - t1.QuantityIn ) AS Quant,
    t2.PriceOut
FROM t1
LEFT JOIN t2 ON t2.Id = t1.Id

在软件MsSql Server Management Studio中出现的错误是:

关键字\'If\'附近的语法不正确。

在我的情况下,“if”的正确语法是什么?

谢谢!

admin 更改状态以发布 2023年5月20日
0
0 Comments

尝试一下

SELECT
    t1.Id,
    t2.Id,
    t1.QuantityIn,
    t1.PriceIn,
    t2.QuantityOut,
    CASE WHEN t2.QuantityOut - t1.QuantityIn =0
        THEN t2.QuantityOut
    Else t2.QuantityOut - t1.QuantityIn END AS Quant,
    t2.PriceOut
FROM t1
LEFT JOIN t2 ON t2.Id = t1.Id

0
0 Comments

你需要使用IIF(SQL Server 2012及以上版本):

IIF(boolean_expression,true_value,false_value)

SELECT
    t1.Id,
    t2.Id,
    t1.QuantityIn,
    t1.PriceIn,
    t2.QuantityOut,
    IIF (t2.QuantityOut - t1.QuantityIn=0,t2.QuantityOut
        , t2.QuantityOut - t1.QuantityIn ) AS Quant,
    t2.PriceOut
FROM t1
LEFT JOIN t2 ON t2.Id = t1.Id

0