我的表格如下所示。
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
请帮我构建查询。
答案 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