根据同一表中的其他列值更新列

时间:2019-10-02 14:28:46

标签: sql

我有两栏。 'A'由枚举值(0,1,2)组成,其他'B'为可空布尔值。我需要根据A更新“ B”。

Case 0 -> null
Case 1 - false
Case 2 - true

正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

这可以使用CASE表达式完成:

update the_table
   set b = case a 
              when 0 then null 
              when 1 then false
              when 2 then true
           end;

答案 1 :(得分:1)

在SQL中,我们可以使用CASE语句根据条件更新列值。

UPDATE TableName SET B = CASE 
  WHEN A= 0 THEN NULL
  WHEN A= 1 THEN False(0)
  WHEN A =  2 THEN True(1)
   END