如何创建具有条件的计算列

时间:2013-09-30 21:13:11

标签: sql-server-2008-r2 calculated-columns

我有一个包含域名数据和表格的表格。需要根据域名“extension”添加持久计算列,其中域名= mydomain.com,yourdomain.net,anydomain.org等。& “扩展”是.com,.net& .org分别。每个域名扩展都有自己的年度续订费用($ 9.17,8.21,8.90)。

我需要每行的计算列来表示域名扩展的年度续订价格: 我有一个包含域名数据和表格的表格。需要根据域名“extension”添加持久计算列,其中域名= mydomain.com,yourdomain.net,anydomain.org等。& “扩展”是.com,.net& .org分别。每个域名扩展都有自己的年度续订费用(分别为9.17美元,8.21美元,8.90美元)。

我需要每行的计算列来表示域名扩展的年度续订价格:

还有许多其他扩展,但我以这些3为例。如何为表列定义?

1 个答案:

答案 0 :(得分:0)

好吧,以下是创建执行此操作的计算列的方法:

ALTER TABLE dbo.foo ADD bar AS CONVERT(DECIMAL(5,2),
  CASE extension 
    WHEN '.com' THEN 9.17
    WHEN '.net' THEN 8.21
    WHEN '.org' THEN 8.90 
    -- may want an ELSE condition for a fallback
  END);

但是,为什么你想要这个作为计算列呢?这应该规范化,您应该有一个表格,其中包含每个TLD的续订率,并在需要时加入以获取这些值。特别是如果你有更多...