当前位置: 代码迷 >> Oracle开发 >> 行列互换有关问题oracle9i
  详细解决方案

行列互换有关问题oracle9i

热度:80   发布时间:2016-04-24 06:55:17.0
行列互换问题oracle9i
CREATE TABLE ORDER_INFO1
(
       order_code VARCHAR2(20),
       order_type VARCHAR2(10), --类别只有 A 、B 、F - (A 、B 每个 order_code 只有一个,F 每个 order_code 可有多个 )
       order_fee1 NUMBER,
       order_fee2 NUMBER,
       order_date VARCHAR2(10)
);
INSERT INTO ORDER_INFO1 
SELECT '铅笔', 'F', 10, 20, 'CC-201310' FROM DUAL UNION ALL 
SELECT '铅笔', 'F', 10, 20, 'CC-201311' FROM DUAL UNION ALL 
SELECT '铅笔', 'A', 10, 20, 'CC-' FROM DUAL UNION ALL 
SELECT '铅笔', 'B', 10, 20, 'CC-' FROM DUAL UNION ALL 
SELECT '水笔', 'F', 10, 20, 'CC-201310' FROM DUAL UNION ALL 
SELECT '水笔', 'F', 10, 20, 'CC-201311' FROM DUAL UNION ALL 
SELECT '水笔', 'B', 10, 20, 'CC-' FROM DUAL UNION ALL 
SELECT '水笔', 'A', 10, 20, 'CC-' FROM DUAL;
/*
要得到的结果:
ORDER_CODE        FEE                     A         B           201310                201311
铅笔                      order_fee1          10        10         10                       10
铅笔                      order_fee2          20        20         20                       20
水笔                      order_fee1          10        10         10                       10
水笔                      order_fee2          20        20         20                       20
或者这种结果也可以
ORDER_CODE                  A         B           201310                201311
铅笔                                30        30         30                       30
水笔                                30        30         30                       30
*/
oracle select

------解决方案--------------------
可以使用decode或者case when来转行,不知道9i里面支持不?
------解决方案--------------------
行列转化就是case when 和decode的经典用法
------解决方案--------------------

你的业务不是很清楚 你参考一下这个 如有疑问在联系我
------解决方案--------------------
  相关解决方案