単一列のサブクエリをコマンドで区切られたVARCHAR
タイプの値のリストに変換しようとしています。
これはこの質問と同じですが、SQL Server や MySQL ではなく Oracle の場合です。
単一列のサブクエリをコマンドで区切られたVARCHAR
タイプの値のリストに変換しようとしています。
これはこの質問と同じですが、SQL Server や MySQL ではなく Oracle の場合です。
Tim Hallのサイトには、利用可能な文字列集約手法の優れた要約があります。
I found this that seems to work. Thoughts?
SELECT SUBSTR (c, 2) concatenated
FROM (SELECT SYS_CONNECT_BY_PATH ( myfield, ',') c, r
FROM (SELECT ROWNUM ID, myfield,
RANK () OVER (ORDER BY ROWID DESC) r
FROM mytable
ORDER BY myfield)
START WITH ID = 1
CONNECT BY PRIOR ID = ID - 1)
WHERE r = 1;
11.2 で導入されたLISTAGGは、WM_CONCAT とは異なり、文書化されています。まだ 11.2 ではないので、カスタム集計関数を使用します。
SELECT deptno, wm_concat(ename) AS employees FROM emp GROUP BY deptno;
参照: http://forums.oracle.com/forums/thread.jspa?messageID=1186901᱕