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

Posted

技术标签:

【中文标题】SQL:如何在具有多列的新表中复制表中的一行【英文标题】:SQL : How to copy one row in a table in new table with multiple columns 【发布时间】:2015-11-15 16:20:26 【问题描述】:

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

姓名_1 |姓_1 |姓名_2 |姓_2 |姓名_3 |姓_3 -------------------------------------------------- ------------- 汤姆 |琼斯 |詹姆斯 |孙 |李 |哈珀

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

姓名 |姓 ------------------ 汤姆 |琼斯 詹姆斯 |孙 李 |哈珀

这样,第一个表 Name_1、Name_2 和 Name_3 中的所有内容都进入新表 Name 下的新表,LastName 也是如此。

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

【问题讨论】:

【参考方案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;

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

【讨论】:

以上是关于SQL:如何在具有多列的新表中复制表中的一行的主要内容,如果未能解决你的问题,请参考以下文章

如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中

如何将现有表中的 7000 条记录中的前 1000 条记录复制到其他新表中

如何在新表中插入受影响的行

比较 2 个表中的值并生成具有差异的新表

(Sqlserver)将在查询结果插入新表中的时候添加一个自动增长列么 SQL语句怎么写

SQL Server 将现有表复制到新表中但跳过重复记录