现在的col1 in varchar2, col2 in varchar2, col3 in varchar2, 是固定的,如果在不确定列数的情况下,就很难支持啦, 建议将col1,col2 ,col23组合成一个字符串,在存储过程里面切割后获得列,最后使用动态sql处理下面的东西,楼猪看看能实现不?
楼主用的哪个版本的数据库,我在SQL 2000里面运行怎么总是提示有很多错误呢?
这是oracle的..如果要使用sqlserver需要进行一些修改
11g有个新特性,用PIVOT函数,以楼主的成绩表的例子,可以写成: select * from tab pivot( sum(counter) for class in ('one' as one,'two' as two,'three' as three) ) order by subject;
不过我最担心的是并发性、性能问题,多个会话同时建同一名字的view是否会有很大问题。
试试将数据导出到excel,再转成dbf格式
具体可以搜索下,我没有这方面经验
col2 in varchar2,
col3 in varchar2,
是固定的,如果在不确定列数的情况下,就很难支持啦,
建议将col1,col2 ,col23组合成一个字符串,在存储过程里面切割后获得列,最后使用动态sql处理下面的东西,楼猪看看能实现不?
select * from tab
pivot(
sum(counter) for class in ('one' as one,'two' as two,'three' as three)
)
order by subject;