当前位置: 代码迷 >> Oracle开发 >> 这SQL脚本咱写啊 ?求大侠帮忙,解决方法
  详细解决方案

这SQL脚本咱写啊 ?求大侠帮忙,解决方法

热度:29   发布时间:2016-04-24 06:41:43.0
这SQL脚本咱写啊 ??求大侠帮忙,急急急
有一个表,原始数据如下
R_code  Price
N-126 10
N-126 12
N-126 15
N-126 18
N-126 9
N-127 100
N-127 120
N-127 150
N-127 10

现在想要实现如下查询结果:
R_code p1  p2  p3  p4  p5  
N-126  9   10  12  15  18
N-127  10  100 120 150
请问脚本咱写啊 ?
------解决方案--------------------

 
WITH tb AS 
(
select 'N-126' r_code, 10   price from dual union all
select 'N-126' r_code, 12   price from dual union all
select 'N-126' r_code, 15   price from dual union all
select 'N-126' r_code, 18   price from dual union all
select 'N-126' r_code, 9    price from dual union all
select 'N-127' r_code, 100  price from dual union all
select 'N-127' r_code, 120  price from dual union all
select 'N-127' r_code, 150  price from dual union all
select 'N-127' r_code, 10   price from dual 
)

SELECT r_code,
       SUM(DECODE(s,1,price,NULL)) P1,
       SUM(DECODE(s,2,price,NULL)) P2,
       SUM(DECODE(s,3,price,NULL)) P3,
       SUM(DECODE(s,4,price,NULL)) P4,
       SUM(DECODE(s,5,price,NULL)) P5
FROM        
(SELECT R_CODE,
       PRICE,
       ROW_NUMBER() OVER(PARTITION BY R_CODE ORDER BY PRICE) S
  FROM TB
)
GROUP BY r_code
  相关解决方案