我有一张10列的table。我想用unpivot把它转换成两列。下面是我的table。我尝试了with子句(从所有\u tab \u列中获取聚合列),unpivot但给出了error simple column error或in子句error。有人能告诉我哪里出错吗。
input table
KEY_COL COL_A COL_B COL_C..till COL_J
1 a,b,c,d,e,f,g,h,i,j
2 x,y,a,s,f,g,e,r,g,d
output table
KEY_COL COLM VALUE
1 COL_A a
1 COL_B b
.
.
.
1 COL_J j
2 COL_A x
2 COL_B y
.
.
.
2 COL_J d
你知道怎么做吗?
2条答案
按热度按时间blmhpbnm1#
你可以用
UNPIVOT
条款如下:我只使用了2列,您需要扩展它以使用10列
或者其他方法,你可以使用
UNION ALL
10次,这将是一个漫长的过程。mdfafbf12#
为了获得取消激活的动态结果,那么使用这样的pl/sql块
可能有助于从dictionary视图中提取每个列的值
user_tab_columns
前提是该表在您的架构中。否则,该视图应替换为all_tab_columns
通过指定所有者。游标的查询循环获取示例表中除键列以外的所有值。
演示