スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

1.15.5 SQL/XML 集合関数

<この項の構成>
(1) XMLAGG

(1) XMLAGG

(a) 機能

引数に指定したXML型の各行の値を連結したXML型の値を,行の集まりから生成します。

(b) 形式
 
  XMLAGG ( 値式
           〔 RETURNING SEQUENCE 〕)
 
(c) オペランド

連結するXML型の値式を指定します。

指定できるものを次に示します。

指定の有無によって,連結した結果の値の形式は変わりません。ISO規格との互換のためにサポートしています。

(d) 規則
  1. 結果はXML型の値でXQueryシーケンスとなります。
  2. 連結する順序は保証しません。
  3. 値式の結果がナル値の行は無視します。
  4. 適用対象が0件,又はナル値だけの場合は,結果はナル値となります。
  5. INSERT文及びUPDATE文で,この関数の結果又は結果を基にしたXML型の値を,列に格納することはできません。

その他の規則については,「2.14 集合関数」の規則に従います。

(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 書籍管理表