我需要将左桌子向右旋转:
而且左表很长,大约有1000行。问题是自动为右表中的列命名。
谢谢。
最佳答案
如果您使用的是Oracle 11g,则具有数据透视查询功能。我还没有使用过它,但是看起来您需要这样的东西:
select * from (
select bill, goods
from bills
)
pivot
(
count(goods)
for goods in ('TV', 'CD', 'phone', 'mouse')
)
order by bill
似乎要求您列出
goods
的可能值。但是,如果您需要即时生成此查询,则可以执行一次查询以获取不同的值,将该列表转换为以逗号分隔的字符串,然后以动态SQL或生成的脚本的形式执行实际查询。(我希望有一个列出
goods
可能值的表,您可以使用该表来生成值列表,而不用查询大型事实表。)