【问题标题】:Multiply combination of columns based on a column value基于列值乘以列组合
【发布时间】:2012-02-05 13:50:20
【问题描述】:

如何根据一列中的值将列的值相乘。

例子

   Col1   Col2   Col3   Col4
    10     10     10     casea (multiply col1 * col2)
    20     20     20     caseb (multiply col1 * col3) 
    30     30     30     casec (multiply col2 * col3) 

这样的查询:

select col1, col2, col3, col4, total

会回来

    10,10,10,casea,100
    20,20,20,caseb,400
    30,30,30,casec,900

当然,性能一如既往地是一个重要问题。

感谢参与。

【问题讨论】:

    标签: tsql calculated-columns


    【解决方案1】:
    select
      Col1,
      Col2,
      Col3,
      Col4,
      CASE Col4 
        WHEN 'casea' then col1*col2
        WHEN 'caseb' then col1*col3
        WHEN 'casec' then col2*col3
      END AS Total
    FROM YourTable
    

    【讨论】:

    • 我在发布这个问题之前做了一些研究,并了解到这是一个正确的解决方案,但效果不佳。
    • @John 为了提高性能,请使用其他功能,例如持久计算列等。或查看您的架构和数据流
    • @John - 为什么你认为这会表现不佳?怀疑它会产生明显的差异,并且计算起来可能比存储它的额外 IO 更便宜。
    猜你喜欢
    • 2015-01-09
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多