存储过程动态列
比如有两张表结构如下:
KHH ZXYZ YZPF(得分)
001 123 2
002 111 3
003 112 1
004 113 2
... ... ... ... ....
另一张表:
ID ZBMC
123 年龄
111 文化程度
112 投资偏好
113 平仓情况
现在想实现一个存储过程的报表统计,没有选择某个字段则效果如下:
得分 年龄 文化程度 投资偏好 ...
0 2 0 0 ...
1 3 0 0 ...
2 0 1 0 ...
3 0 0 2 ...
如果只选择年龄其它的字段不会出现,效果如下:
得分 年龄
0 2
1 3
2 0
3 0
------解决方案--------------------这个 还算不上是动态列
if(选择全部)
select * from ..
else
select 选择值 from ..
------解决方案--------------------可以先定义一个串变量,拼一个创建临时表的ddl语句,然后用 execute immediate 执行创建表