Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (P-Z)

 

XMLAGG 函数 [Aggregate]

从 XML 值的集合生成一个 XML 元素林。

语法
XMLAGG( value-expression [ ORDER BY  order-by-expression ] )
参数
  • value-expression   XML 值。始终将元素内容转义,除非数据类型为 XML。order-by-expression 会对该函数返回的元素排序。

  • order-by-expression   用以对 XML 元素排序的表达式,根据该表达式的值对 XML 元素排序。

返回值

XML

注释

结果中任何为 NULL 的值都将被忽略。如果所有的输入都为 NULL,或输入 0 行数据,则结果为 NULL。如果您要求格式正确的 XML 文档,则必须确保编写查询以使生成的 XML 只包含一个根元素。

当执行一个包含 XMLAGG 的查询时,BINARY、LONG BINARY、IMAGE 和 VARBINARY 列中的数据将被自动以 base64 编码格式返回。

有关使用带有 ORDER BY 子句的 XMLAGG 函数的查询示例,请参见使用 XMLAGG 函数

另请参见
标准和兼容性
  • SQL/XML 标准草案的一部分。

示例

以下示例生成了显示每个客户所发出的订单的 XML 文档。

SELECT XMLELEMENT( NAME "order",
                   XMLATTRIBUTES( ID AS order_id ),
                     ( SELECT XMLAGG(
                         XMLELEMENT(
                           NAME "Products",
                           XMLATTRIBUTES( ProductID, Quantity AS "quantity_shipped" ) ) )
                      FROM SalesOrderItems soi
                      WHERE soi.ID = so.ID
                     )
                  ) AS products_ordered
FROM SalesOrders so
ORDER BY so.ID;