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