比较SQL Server中的2列并根据结果更改列

时间:2017-04-04 20:09:31

标签: sql-server

+-------+-------+---------+
| data1 | data2 |  data3  |
+---------------+---------+
| 1000  | 1000  |         |
| 2000  | 2000  |         |
| 1234  | 4567  |         |
| 12    | 0     |         |
| 56    | 3     |         |
+-------+-------+---------+

我在SQL Server中有一个类似上面的表。如果data3中的数据为equals,则可以使用less thandata2实际字词创建视图或使用select语句更新列= data1data2 < data1

我可以在网上找到比较但没有给出结果或根据=或&lt;更新列。

谢谢

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您可以使用case这样的表达式:

select 
     data1
  ,  data2
  ,  data3 = case 
      when data1 = data2 then 'equal'
      when data1 > data2 then 'less than'
      when data1 < data2 then 'greater than'
      else 'other'
      end
from t

更新:

update t
  set data3 = case 
      when data1 = data2 then 'equal'
      when data1 > data2 then 'less than'
      when data1 < data2 then 'greater than'
      else 'other'
      end;