有一个表,让我们说vw\u结果如下:
ID Quarter
Risk 00001
Q0 2
00001 Q1
3 00001
Q2 1
00001 Q3
1 00001
Q4 2
现在我必须在第一行显示列名。
我想要这样的输出: Col1
Col2 Col3
ID Quarter
Risk 00001
Q0 2
00001 Q1
3 00001
Q2 1
00001 Q3
1 00001
Q4 2
如果列的数量是固定的,我可以很容易地实现这一点,使用 UNION ALL
.
但列的数量会随着时间的推移而变化。
我想使这个动态,这样我就不必手动输入列名。
我使用的是oracle11g。
2条答案
按热度按时间dtcbnfnu1#
为了满足您的需求,所有的数据类型都应该是string,因为所有的列都是string。如果您的任何数据类型不是字符串,它将无法工作。例如:id列似乎是integer数据类型,如果您试图将id字符串合并到id列中,根据sql标准,它将失败。但是,如果相应表中的所有列都是字符串格式,则下面是解决方案。
jm81lzqq2#
将您的列放入variable中,并将每次运行时得到的所有列连接起来..使用execute immediate执行,并将变量与语句连接起来