Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


1.14.5 SQL/XML 集合関数

〈この項の構成〉

(1) XMLAGG

(a) 機能

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

(b) 形式

  XMLAGG ( 値式
           〔 RETURNING SEQUENCE 〕)

(c) オペランド

  • 値式

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

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

  • 列指定

  • XMLQUERY関数

  • 列指定によって導出した名前付き導出表の列

  • RETURNING SEQUENCE

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

(d) 規則

  1. 結果はXML型の値でXQueryシーケンスとなります。

  2. 連結する順序は保証しません。

  3. 値式の結果がナル値の行は無視します。

  4. 適用対象が0件,又はナル値だけの場合は,結果はナル値となります。

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