2016-05-12 16 views
0

1つの列をマトリックス表に表示する必要があります。1つの列をOracleの等しい行に変換する

例:

Select SlotNumber from Parking_lot_table; 

アウト:

...

Col1 Col2 Col3 Col4 Col5 
SL01 SL02 SL03 SL04 SL05 
SL06 SL07 SL08 SL09 SL10 

列の数を修正するためにも、その罰金:

SL01 
SL02 
SL03 
SL04 
SL05 
SL06 
SL07 
SL08 
SL09 
SL10 

私の出力は次のようでなければなりません

親切にお勧めします...どのようにOracleのSQLで

+0

これを行うためにあなたは私たち教えてください[ピボット](http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html)機能 – SomeJavaGuy

+0

を使用することができますレコードがどのように5つの希望する出力列の1つに配置されるかを決定するロジック。 –

+0

こんにちはKevin、すばやい返信をありがとう....私はこれについてgoogleします...もしあなたがサンプルを親切に共有していれば... –

答えて

1
select * from 
(select trunc((rownum -1)/5) gr , mod(rownum, 5) rn, slot 
    from 
    (select * from 
    parking_lot_table order by to_number(REGEXP_REPLACE(slot, '[^0-9]+', '')) 
) 
) 
    pivot 
    ( max(slot) 
    for rn in (1 as Col1, 2 as Col2, 3 as Col3, 4 as Col4, 0 as Col5)) 
    order by 1 
+0

こんにちはdcieslak、解決策は私の要求に正確に合うようです私が投稿したものと同じようにソートするには...ヘッドアップのためにも、ダイレクトクエリでもありがとう。 –

+0

スロットフィールドから抽出された番号でソートを追加しました。 – dcieslak

+0

うわー...それは動作します:)あなたに感謝の言葉はありません! dcieslak ハッピーコーディング! –

関連する問題