こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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してやればできるかなとも考えているのですが
何か良い方法はないでしょうか。


よろしくお願いします。

投稿日時 - 2014-03-20 18:20:54

QNo.8521676

暇なときに回答ください

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

こんにちわ。

> 複数列を複数行にする方法がわかりません。
> 何か良い方法はないでしょうか。
パイプライン表関数を作成すれば、効率的に作成できます。
カンマ区切りのデータから各項目を切り出して、各項目を
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

投稿日時 - 2014-03-23 08:40:21

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問