SQL:如何在具有多列的新表中的表中复制一行

时间:2015-11-15 16:20:26

标签: sql postgresql

我正在使用postgresql。
我有一个表只有一行,列如:

Name_1 | LastName_1 | Name_2 | LastName_2 | Name_3 | LastName_3
---------------------------------------------------------------
Tom    | Jones      | James  | Sunn       | Lee    | Harper

我需要将它复制到一个包含多行的新表中,其中包含两列,如:

Name    | LastName
------------------
Tom     | Jones   
James   | Sunn     
Lee     | Harper

因此,第一个表Name_1,Name_2和Name_3中的所有表都进入新列名称下的新表,并且对于LastName也是如此。

我找到了一些像PIVOT这样的选项,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:1)

如果您的数据不大,那么最简单的方法是union all

select name_1 as name, lastname_1 as lastname from t union all
select name_2 as name, lastname_2 as lastname from t union all
select name_3 as name, lastname_3 as lastname from t;

对于更大的数据或者性能是主要考虑因素还有其他方法。