Tsql 基于列值乘以列的组合

Tsql 基于列值乘以列的组合,tsql,calculated-columns,Tsql,Calculated Columns,如何基于一列中的值乘以列的值 范例 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

如何基于一列中的值乘以列的值

范例

   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
当然,绩效始终是一个重要问题


感谢您的参与。

在发布此问题之前,我做了一些研究,了解到这是一个正确的解决方案,但性能会很差。@John为了提高性能,请使用其他功能,如持久化计算列等。或者查看您的模式并dataflow@John-为什么您认为这会表现不佳?我怀疑它会产生明显的差异,并且计算起来可能比存储它的额外IO便宜。在发布此问题之前,我做了一些研究,了解到这是一个正确的解决方案,性能会很差。@John为了提高性能,请使用其他功能,例如持久化计算列等。或者查看您的模式并dataflow@John-为什么您认为这会表现不佳?怀疑它是否会产生明显的差异,并且计算起来可能比存储它的额外IO要便宜。
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