2013-04-26 72 views
0

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

例如,表如下所示。

SerialNo   Status 
     1   Married 
     2   Single 
     3   Married 

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

预计:

SerialNo   Status 
     1   Single 
     2   Married 
     3   Single 

这应该只有一个查询来完成。单个查询可以这么做吗?如果是,请帮助我。

在此先感谢。

+0

也许答案可以在这里找到[链接](http://stackoverflow.com/questions/9162671/multiple-sql-update-statements-in-single - 查询)? – 2013-04-26 05:23:30

+0

我认为你的问题不是交换这个价值。对?你是否要求进行n次交换? – Anvesh 2013-04-26 05:27:51

+0

@Anvesh yaa ...基本上我需要交换值。无论哪里结婚,都应该是单身,在单身的地方,应该结婚。无论列中有多少行。 – 2013-04-26 05:31:03

回答

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

+ 1更清洁。**和*更好的逻辑* – Luv 2013-04-26 05:34:46

0

使用此:

SET Status = CASE WHEN Status = 'Married' THEN 'Single' 
        WHEN Status = 'Single' THEN 'Married' 
              ELSE 'Unknown' END 
相关问题