在oracle中复制记录

时间:2017-01-19 13:13:15

标签: sql oracle

我的表格如下所示。

ID DATE1     DATE2      DATE3      DATE4  
1  01/01/17  02/01/17   03/01/17   04/01/17

现在我想从这个表中选择后创建一个新表,它将如下所示

ID DATE  
1  01/01/17  
1  02/01/17  
1  03/01/17  
1  04/01/17  

请帮我构建查询。

2 个答案:

答案 0 :(得分:0)

最简单的方法通常是union all

SELECT ID, DATE1 as date FROM t UNION ALL
SELECT ID, DATE2 as date FROM t UNION ALL
SELECT ID, DATE3 as date FROM t UNION ALL
SELECT ID, DATE4 as date FROM t;

如果你有一个非常大的表,那么这会多次扫描表。如果表现是一个潜在的问题,还有其他选择。

答案 1 :(得分:0)

我建议你阅读有关UNPIVOT的内容。给你一个解决方案,你复制答案将让你不知道SQL中这个出色的概念。

  

https://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1