• ベストアンサー

SQLで複数列のデータを複数行にしたい

以下のようなテーブルがあるとします。 column1 a,b,c <- カンマの数は最大50 b,d c,x SQLを実行し以下のような結果を返したいです。 以下の3つのことをすればできそうなのですが複数列を複数行にする方法がわかりません。 1.strtokenで50カラムに分割(カンマ分割) 2. 50カラムを1カラムにする 3.DISTINCTで重複データの削除 結果 a b c d x カンマの数が50あるので、かなり長いSQLになるのですが SELECT文50個をUNIONしてやればできるかなとも考えているのですが 何か良い方法はないでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 > 複数列を複数行にする方法がわかりません。 > 何か良い方法はないでしょうか。 パイプライン表関数を作成すれば、効率的に作成できます。 カンマ区切りのデータから各項目を切り出して、各項目を PIPE ROW で返してやると、返したデータを行として認識できます。 実際の方法は、この辺が参考になるかと思います。 http://docs.oracle.com/cd/E16338_01/appdev.112/b56260/tuning.htm#i52932

参考URL:
http://docs.oracle.com/cd/E16338_01/appdev.112/b56260/tuning.htm#i52932

関連するQ&A