横縦変換

横を縦にするSQLサンプル

with 
seq as -- 1~5を返すテーブルを用意する ( select 1 val from dual union select 2 val from dual union select 3 val from dual union select 4 val from dual union select 5 val from dual ) , tate as --横テーブルを5倍し、あてがう項目を切り替える ( select yoko.KEY1 ,decode(seq.VAL ,1, yoko.DATA1 ,2, yoko.DATA2 ,3, yoko.DATA3 ,4, yoko.DATA4 ,5, yoko.DATA5 ) data from yoko cross join seq ) select * from tate
--DATA1~DATA5の中で未設定のものがある恐れがあるので、それらを除去する where DATA is not null