XMLCONCAT

XMLCONCAT 関数は、可変数の XML 入力引数を連結したものを含むシーケンスを戻します。

構文図を読む構文図をスキップする
                                 .-------------------.      
                                 V                   |      
>>-XMLCONCAT--(--XML-expression----,--XML-expression-+--)------><

XML-expression
XML 値を戻す式。

この関数の結果は、NULL 以外の入力 XML 値の連結を含む XML シーケンスです。入力の中の NULL 値は無視されます。

この関数の結果は XML です。結果は NULL になる可能性があります。 すべての入力値の結果が NULL の場合、結果は NULL 値となります。

注: XMLCONCAT は、出力の中にブランク・スペースまたは改行文字を挿入しません。読みやすくするために、すべての出力例はフォーマット設定されています。
  • 従業員ごとに「first」と「last」のエレメント名を使用して、ファーストネームとラストネームのエレメントを連結します。
      SELECT XMLSERIALIZE(
            XMLCONCAT(
              XMLELEMENT(NAME "first", e.firstnme),
              XMLELEMENT(NAME "last", e.lastname)
             ) AS VARCHAR(100) ) AS "result"
      FROM EMPLOYEE E
      WHERE e.lastname = 'SMITH'
    照会の結果は、次の結果のようになります。
    result
    ----------------------------------------
    <first>DANIEL</first><last>SMITH</last>
    <first>PHILIP</first><last>SMITH</last>
  • ファーストネームによってソートされた従業員のリストが含まれる、部門 A00 と B01 の部門エレメントを構成します。この部門エレメントの直前に、紹介コメントを含めます。
      SELECT XMLCONCAT(
        XMLCOMMENT (
         'Confirm these employees are on track for their product schedule'),
        XMLELEMENT(
           NAME "Department",
           XMLATTRIBUTES( E.WORKDEPT AS "name"),
           XMLAGG(
             XMLELEMENT(NAME "emp", E.FIRSTNME)
             ORDER BY E.FIRSTNME)
                 ))
                FROM EMPLOYEE E
        WHERE E.WORKDEPT IN ('A00', 'B01')
      GROUP BY E.WORKDEPT

    この照会は下記の結果を生成します。

    <!--Confirm these employees are on track for their product schedule-->
    <Department name="A00">
    <emp>CHRISTINE</emp>
    <emp>SEAN</emp>
    <emp>VINCENZO</emp>
    </Department>
    <!--Confirm these employees are on track for their product schedule-->
    <Department name="B01">
    <emp>MICHAEL</emp>
    </Department>