2013-04-26 40 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 
相關問題