SQL条件乘法

时间:2017-08-31 15:08:25

标签: sql-server tsql

我在T-SQL(SQL Server 2016)中有一个表,如下所示:

   Flag       Col 1       Col 2    Col 3        
-----------  ---------   -------  -------
   0           33.1        3.9      5.5
   1           20.5        8.1      4.3
   0           15.3        8.33     1.1
   1           12.1        8.4      9.2

这只是一个示例。但是,我想要做的是更新这些列,如果flag = 0,则col 1保持不变,但col 2和col 3 = 0.如果flag = 1,则col 1 = 0,col 2和col 3保持不变,依此类推。

如何在SQL Server中实现这一目标?

感谢。

2 个答案:

答案 0 :(得分:4)

UPDATE my_table SET 
[Col 1] = CASE WHEN [Flag] = 0 THEN [Col 1] ELSE 0 END, 
[Col 2] = CASE WHEN [Flag] = 1 THEN [Col 2] ELSE 0 END , 
[Col 3] = CASE WHEN [Flag] = 1 THEN [Col 3] ELSE 0 END

答案 1 :(得分:2)

假设Flag只有值01

update ThyTable
  set Col1 = Col1 * ( 1 - Flag ), Col2 = Col2 * Flag, Col3 = Col3 * Flag