日期:2014-05-17  浏览次数:20941 次

oracle如何设置动态的列名
有一条sql,我需要动态的去设置列名,不同日期查询,列名都不一样

比如我要查询未来一个月的数据

就像下面

今天查询
select x "12-30",xx "12-31",......,xxx "01-28",xxxx "01-29" from table1;
这个有31列

1月30日查询
select x "01-31",xx "02-01",......,xxx "02-27",xxxx "01-28",0 "判断没有那么多天有就显示0",0 "判断没有那么多天有就显示0" from table1;
本来只有29列,因为是同一条SQL,天数不够的可以通过判断的方式,最后两列就补为0

我设想的是预先设置31列,如果查询的那天未来一个月不满足31天(比如2月只有28/29天),就0,这个可以通过判断做到
但是动态的列名我就不知道怎么实现了,请大家给出个主意


------解决方案--------------------
只能在PL/SQL中来处理了,
请查询有关动态SQL的相关资料。
------解决方案--------------------
建议存储过程操作, 游标或者索引表
------解决方案--------------------
用存储过程,数据处理好插入到一张表里,直接读表数据吧