参考:
http://community.csdn.net/Expert/topic/3532/3532608.xml?temp=.2028009
http://community.csdn.net/Expert/topic/3532/3532608.xml?temp=.2028009
解决方案 »
- TNS-12500: TNS:监听器未能启动专用的服务器进程
- Oracle 9i中触发器使用merge into语句触发时出错,请教如何更改。
- pl/sql中嵌套sql语句如何实现动态sql?
- oracle xmltype字段统计的问题
- oralce启动问题
- PLSQL Developer 5.1.2.682 汉化版使用oracle时出现的问题???怪,怪,怪
- 表怎么变慢了?
- 请问装oracle必须在服务器版的操作系统上吗?在一台机子上可以吗?
- oracle问题一大堆,又是初学者,很多问题查以前的记录也查不到,希望各位教一下
- 我怎么知道是哪个用户登陆到数据库进行的修改?
- 如何将一个表更新前和更新后的记录,插入到另外一个表中?
- 关于数据库事务的问题
学习!
否则考虑动态SQL,输出不确定列形式如:
select c1, sum(c2) as s2, sum(c3) as s3, sum(c4) as s4....
from (
select b.b1 as c1, b.b3 as c2, 0 as c3, 0 as c4.... from b where b.b2='x1' union
select b.b1 as c1, 0 as c2, b.b3 as c3, 0 as c4.... from b where b.b2='x2' union
select b.b1 as c1, 0 as c2, 0 as c3, b.b3 as c4.... from b where b.b2='x3' union
....)
group by c1sum 有时可以用 max 性能好些,但注意null和负数情况复杂的建议客户端脚本处理
select b.b1 as c1,
max(decode(b.b2,'x1',b.b3,null)),
max(decode(b.b2,'x2',b.b3,null)),
max(decode(b.b2,'x3',b.b3,null)),
max(decode(b.b2,'x4',b.b3,null)),
from b group by b.b1相比较性能可能比 union 慢一些。
我先看下