2016-05-04 10 views
0

Oracle 12cでは、表示に時間がかかります。 where句を追加すると、まさに関心のある行が1つ返されます。行は、私はこれは私がそれぞれの「設定」ごとに1つの行を見ることができるように裏返し必要Oracle SQL - 1行を複数にピボットする方法

enter image description here

...このような列/値を持っています。 enter image description here

私は各エントリセットに対してUNION ALLを実行できますが、ビューの実行には少し時間がかかりますが、約30個の異なるセットがあります3を示した - 車、ボート、およびトラック)

enter image description here

は、これを行うのより良い方法はありますか?私はPIVOT/UNPIVOTを見てきましたが、私はこの作業を行う方法を見ていませんでした。

答えて

2

私はあなたがUNPIVOT

WITH TEMP_DATA (ID1, CarPrice, CarTax, BoatPrice, BoatTax, TruckPrice, TruckTax) 
AS (
select 'AAA', 1, 2, 3, 4, 5, 6 from dual) 

    select TYPE, PRICE, TAX 
    from temp_data 
    unpivot 
    (
    (PRICE, TAX) 
    for TYPE IN 
    (
     (CarPrice, CarTax) as 'CAR', 
     (BoatPrice, BoatTax) as 'BOAT', 
     (TruckPrice, TruckTax) as 'TRUCK' 
    ) 
) 
; 

OUTPUTを探していると思う:

TYPE  PRICE  TAX 
----- ---------- ---------- 
CAR   1   2 
BOAT   3   4 
TRUCK   5   6 
+0

私が探していたまさにでした!ありがとう。 – user1009073

+0

@ user1009073問題はありません...気づいた、私は上記で更新した不必要なサブクエリがありました。それでも同じ結果が得られます。 – mo2

関連する問題