我希望能够在一列中存储十进制值,在另一列中存储表示选项的int(将解释):
意思是我有一个包含3列的表格:
和
假设我们有一行它的BasePrice是100而AdditionalPrice是0.20
根据选项,计算的col应生成以下值:
答案 0 :(得分:3)
我也将计算列保留为金钱。
在内部,由于Data Type Precedence
,这将转换为十进制CREATE TABLE (
...,
ComputedColumn AS CAST (
CASE Option
WHEN 1 THEN BasePrice * (1 - AdditionalPrice)
WHEN 2 THEN BasePrice - AdditionalPrice
WHEN 3 THEN BasePrice * (1 + AdditionalPrice)
WHEN 4 THEN BasePrice + AdditionalPrice
END AS money)
)