dポイントプレゼントキャンペーン実施中!

以下のようなテーブルがあるとします。
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してやればできるかなとも考えているのですが
何か良い方法はないでしょうか。


よろしくお願いします。

A 回答 (1件)

こんにちわ。



> 複数列を複数行にする方法がわかりません。
> 何か良い方法はないでしょうか。
パイプライン表関数を作成すれば、効率的に作成できます。
カンマ区切りのデータから各項目を切り出して、各項目を
PIPE ROW で返してやると、返したデータを行として認識できます。

実際の方法は、この辺が参考になるかと思います。
http://docs.oracle.com/cd/E16338_01/appdev.112/b …

参考URL:http://docs.oracle.com/cd/E16338_01/appdev.112/b …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!