如何在同一个表中交换相同列的值

时间:2013-04-26 05:20:22

标签: sql self-join

我想知道如何在一个查询中交换同一个表中同一列的值。

例如,Table如下所示。

  SerialNo         Status
      1           Married
      2           Single
      3           Married

现在,结果我想要的是“结婚”应该转换成单身,“单身”应该转换成结婚。

预期:

  SerialNo         Status
      1           Single
      2           Married
      3           Single

这应该只在一个查询中完成。是否可以使用单个查询执行此操作?如果是,请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:5)

UPDATE MyTable
SET Status = (CASE WHEN Status = 'Married' THEN 'Single' ELSE 'Married' END )

答案 1 :(得分:1)

使用此:

SET Status = CASE WHEN Status = 'Married' THEN 'Single'
                  WHEN Status = 'Single'  THEN 'Married' 
                                          ELSE 'Unknown' END