MSSQL 使用 case 语句的结果

时间:2021-07-23 08:33:21

标签: sql sql-server sql-server-2016

SELECT .....
    'NewReserveSum' = 
case 
    when h.ApprovedCurrencyID = 417 then new.ReserveSumV 
    else [dbo].[GetCurrencyRate](h.ApprovedCurrencyID, @PresentDate) * new.ReserveSumV 
end,
    (o.ReserveSummN - NewReserveSum) as 'DifferenceReserveSummN'
    
FROM ......

我想在以下列中使用 ** NewReserveSum ** 变量,但出现错误:

<块引用>

无效的列名“NewReserveSum”

如何在 MSSQL 中正确执行此操作?

1 个答案:

答案 0 :(得分:-1)

在 SQL 中,= 是比较,而不是赋值

在 SELECT 语句中,您可以使用 AS 给一个名称 top 一个表达式列:

SELECT
case 
    when h.ApprovedCurrencyID = 417 then new.ReserveSumV 
    else [dbo].[GetCurrencyRate](h.ApprovedCurrencyID, @PresentDate) * new.ReserveSumV 
end as NewReserveSum,
...
相关问题