XMLAGG

XML アグリゲート関数 XMLAGG は、カラムに対して機能します。この関数は、他のアグリゲート関数が有効な場合に有効です。

この関数は 1 つの引数を受け入れます。この引数は、GROUP BY 句が指定されている場合、その句で指定されたグループ全体で集計されます。

構文

XMLAGG ( <XML_value_expression>
	[ ORDER BY <sort_specification_list> ]
	[ <XML_returning_clause> ]
) 

備考

集計は、XML アグリゲート関数に固有の ORDER BY 句を使用して並べ替えることができます。これは、SELECT ORDER BY 句とは無関係です。
引数が NULL に評価される場合、結果は NULL です。

例 (ORDER BY なし)

SELECT CAST (XMLAGG (XMLELEMENT (name Name, ContactLastName) )  
AS VARCHAR (10000) ) "Last Name"
FROM /shared/examples/ds_orders/customers CUSTOMER  
WHERE CustomerID < 23

例 (ORDER BY を使用)

SELECT XMLAGG ( (XMLELEMENT (name Details,  
XMLATTRIBUTES (ProductID as product) ,  
XMLELEMENT (name orderno, OrderID) ,  
XMLELEMENT (name status, Status) ,  
XMLELEMENT (name price, UnitPrice) ) )  
ORDER BY ProductID ASC, Status ASC, OrderID DESC, UnitPrice ASC) 
myOutput
FROM /shared/examples/ds_orders/orderdetails  
WHERE ProductID < 20