2015-10-02 48 views
1

我想我的查詢列轉換行。 這是我的查詢:談到列轉換爲行(ORACLE)

select sum(CASE WHEN 
        t.price < 5000 
       THEN t.price END) AS RANGE1, 
     sum(CASE WHEN 
        t.price between 5000 and 10000 
       THEN t.price END) AS RANGE2, 
     sum(CASE WHEN 
        t.price > 10000 
       THEN t.price END) AS RANGE3 
From 
     cars t 
Where 
     t.status = 3 

的結果是這樣的:

RANGE1 RANGE2 RANGE3 
------- ------- -------- 
50000  75000  84000 

我想要的結果如下:

RANGE TOTAL  
------- ------- 
RANGE1 50000  
RANGE2 75000  
RANGE3 84000 
+0

這是一個線程與一些例子http://stackoverflow.com/questions/19858079/how-to-convert-columns-into-rows-in-oracle?lq=1。 – jsh

回答

2

嘗試:

select 
     'RANGE1' RANGE, 
     sum(CASE WHEN 
        t.price < 5000 
       THEN t.price END) AS total 
From 
     cars t 
Where 
     t.status = 3 

union all 

select 
     'RANGE2' RANGE, 
     sum(CASE WHEN 
        t.price between 5000 and 10000 
       THEN t.price END) AS total 
From 
     cars t 
Where 
     t.status = 3 

union all 

select 
     'RANGE3' RANGE, 
     sum(CASE WHEN 
        t.price > 10000 
       THEN t.price END) AS total 
From 
     cars t 
Where 
     t.status = 3