値を連結した文字列を作成する集約関数です。
Synopsis
XMLAGG ([ DISTINCT ] string-expr [%FOREACH(col-list)] [%AFTERHAVING])
-
以下の例は、Sample.Person テーブルの Home_State 列内にあるすべての値を連結した文字列を 1 つの値として返します。
SELECT DISTINCT XMLAGG(Home_State) AS All_State_Values
FROM Sample.Person
この文字列には重複値が含まれます。DISTINCT キーワードは、
SELECT の結果に適用されます。この場合、結果は 1 つの値になります。
-
以下の例は、Sample.Person テーブルの Home_State 列内にあるすべての個別の (一意の) 値の連結文字列を作成します。
SELECT XMLAGG(DISTINCT Home_State) AS All_Unique_State_Values
FROM Sample.Person
SELECT XMLAGG(XMLELEMENT("para",Home_State))
FROM Sample.Person
<para>LA</para><para>MN</para><para>LA</para><para>NH</para><para>ME</para>...
以下の例は、Sample.Person テーブルの FavoriteColors 列内にあるすべての個別値の連結文字列を作成します。したがって、すべての行の All_Colors 列の値は同じになります。ある行が FavoriteColors に NULL 値を持つと、この値は連結文字列に含まれなくなります。データ値は、内部形式で返されます。
SELECT Name,FavoriteColors,
XMLAGG(DISTINCT FavoriteColors) AS All_Colors_In_Table
FROM Sample.Person
ORDER BY FavoriteColors
以下の例は、各州の Home_City 列内にあるすべての個別値の連結文字列を作成します。同じ州のすべての行には、その州の個別の市の値すべてのリストが含まれます。
SELECT Home_State, Home_City,
XMLAGG(DISTINCT Home_City %FOREACH(Home_State)) AS All_Cities_In_State
FROM Sample.Person
ORDER BY Home_State
SELECT DISTINCT Name, XMLAGG(Make) AS String_Of_Makes
FROM AutoClub WHERE Name = 'Smith,Joe'
SELECT DISTINCT Name, XMLAGG(DISTINCT Make) AS String_Of_Makes
FROM AutoClub WHERE Name = 'Smith,Joe'