2014-01-21 25 views
0

我在我的SQL表中大約有5000行。 我有兩列'name1'和'name2'。而現在,棘手的部分。我必須將'name1'中的數據放入'name2'中,而'name2'中的數據應該放在'name1'中......我知道我可以爲此操作製作額外的列,但我有一種更好的感覺,更快的方式來做到這一點。 重要的一點是,我不能爲所有的行,但爲特定的部分(約50%),只爲'WHERE type ='p'';-)數據轉置,SQL

+0

我在刪除你的說明後回答了我的問題... – Vadim

+0

對不起,我首先忘記了這部分;-)但是你的回答並不愚蠢。我只是改變了列名,後來的數據剛剛放在第二列(對於我不希望影響第二列的這些行是空的,所以我能夠做到這一點)。儘管我仍然認爲,SQL有什麼方法可以使兩列中的數據「交換」;-) –

+0

看起來就像這樣。 http://stackoverflow.com/questions/37649/swapping-column-values-in-mysql –

回答

1

用例 - 何時有條件地重命名列:

SELECT 
    CASE WHEN t.type = 'p' THEN t.name2 ELSE t.name1 END as name1, 
    CASE WHEN t.type = 'p' THEN t.name1 ELSE t.name2 END as name2, 
    t.type 
FROM (your original select) t;