1.14.5 SQL/XML 集合関数
- 〈この項の構成〉
(1) XMLAGG
(a) 機能
引数に指定したXML型の各行の値を連結したXML型の値を,行の集まりから生成します。
(b) 形式
XMLAGG ( 値式 〔 RETURNING SEQUENCE 〕)
(c) オペランド
-
値式
連結するXML型の値式を指定します。
指定できるものを次に示します。
-
列指定
-
XMLQUERY関数
-
列指定によって導出した名前付き導出表の列
-
RETURNING SEQUENCE
指定の有無によって,連結した結果の値の形式は変わりません。ISO規格との互換のためにサポートしています。
(d) 規則
-
結果はXML型の値でXQueryシーケンスとなります。
-
連結する順序は保証しません。
-
値式の結果がナル値の行は無視します。
-
適用対象が0件,又はナル値だけの場合は,結果はナル値となります。
-
INSERT文及びUPDATE文で,この関数の結果又は結果を基にしたXML型の値を,列に格納することはできません。
その他の規則については,「集合関数」の規則に従います。
(e) 使用例
書籍管理表のすべての行の書籍情報列から,タイトルが”SQL徹底解説”の書籍情報と同じカテゴリの書籍情報を取得します。
SELECT XMLSERIALIZE( XMLQUERY( ‘$BOOKS/書籍情報[カテゴリ=$BOOKS/書籍情報[タイトル=”SQL徹底解説”]/カテゴリ]’ PASSING BY VALUE XMLAGG(書籍情報 ) AS BOOKS RETURNING SEQUENCE BY VALUE EMPTY ON EMPTY) AS VARCHAR(32000)) FROM 書籍管理表