SQL Select 使用 IF 语句并将数学应用于条件的语句

SQL Select Statement using IF statement and applying math to conditions

希望在 select SQL 查询中填充临时总值字段,但此临时字段是使用两个值的数学运算创建的。如果满足某个条件,则应应用某个数学,如果不满足,则应用另一个数学,依此类推。

示例:

SELECT Price, Quantity, Type,
CASE WHEN Type = 'Fixed' THEN ((Price * Quantity)/100)
WHEN Type = 'Option' THEN ((Price * Quantity)*100)
ELSE (Price * Quantity)
END AS Value
FROM Holding..Position

你快到了...

SELECT Price
     , Quantity
     , [Type]
     , CASE WHEN [Type] = 'Fixed' THEN ( (Price * Quantity) * 1.00  /100)
            WHEN [Type] = 'Option' THEN ( (Price * Quantity) * 1.00 * 100)
            ELSE (Price * Quantity) * 1.00
        END AS Value
FROM Holding..Position

乘以 1.00 以确保您得到答案中的小数位。

您的查询看起来不错。如果要将列添加到 table,可以使用计算列:

alter table holding..Position
    add Value as (CASE WHEN [Type] = 'Fixed' THEN (Price * Quantity)/100
                       WHEN [Type] = 'Option' THEN (Price * Quantity)*100
                      ELSE (Price * Quantity)
                  END);