2014-01-21 28 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;