假设有一张表A,含400个以上的字段,我想将所有列含有的值都放到同一列里面,例如ab列转化成c列一样:
a b
1 7
2 8
3 9
c
1
2
3
7
8
9
我知道列少的情况下可以用union达到目的,但列太多情况下,该用什么方法来达到上面的效果呢?
假设有一张表A,含400个以上的字段,我想将所有列含有的值都放到同一列里面,例如ab列转化成c列一样:
a b
1 7
2 8
3 9
c
1
2
3
7
8
9
我知道列少的情况下可以用union达到目的,但列太多情况下,该用什么方法来达到上面的效果呢?
SELECT EXTRACTVALUE(t2.column_value, 'node()') VALUE
FROM (SELECT *
FROM TABLE(XMLSEQUENCE(cursor (select 1 字段1, 2 字段2
from dual
union all
select 2, 4
from dual)))) t1,
TABLE(XMLSEQUENCE(EXTRACT(t1.column_value, '/ROW/node()'))) t2
下面这个sql就是获取上面那个sql的所有非空值。
你咋这么多奇奇怪怪的想法