【发布时间】:2013-06-08 05:50:32
【问题描述】:
我在 sql 中有一个表,它有许多列,每列具有相同类型的数据。我想将表的列转换为行,以便所有数据都出现在 1 列中。我正在谈论的表格类型的示例:
ID DATE TEST_1 TEST_2 TEST_3
----------------------------------------
1 1jan12 98 66 77
2 2jan12 75 89 72
进入:
ID DATE TEST SCORE
-----------------------------------
1 1jan12 TEST_1 98
1 1jan12 TEST_2 66
1 1jan12 TEST_3 77
2 2jan12 TEST_1 75
2 2jan12 TEST_2 89
2 2jan12 TEST_3 72
提前感谢您的任何建议或指示!
【问题讨论】:
-
如果您在 StackOverflow 中搜索“Oracle pivot”,有很多问题会根据需求讨论如何执行此操作。您使用的是什么版本的 Oracle? 11g 具有早期版本没有的
PIVOT运算符。你知道编译时有效的TEST值的集合吗?或者您是否希望在基表中插入新的TEST_4行时更改结果中的列数? -
我认为不是重复的(至少就大小写/解码而言),因为他想反过来(列 => 行而不是行 => 列)。跨度>
-
我正在使用 11g。 TEST_N 的列数是静态的,不会改变。