在其他数据库产品中是否存在与MS SQL"FOR XML PATH"相同的内容?

Dar*_*ler 7 xml sql

我目前正在使用Microsoft的FOR XML PATH功能以XML格式从MS SQL Server中提取数据.我非常喜欢这个功能,但是使用特定于供应商的功能总是很不舒服.

是否有其他主要数据库供应商有类似的东西?

编辑

让我更具体地说明我正在寻找的功能类型

在MS SQL中,您可以使用此查询

SELECT so.id AS '@Id',
       so.Code AS '@Code',  
       cu.Code AS 'Customer/@Code',
       cu.Name AS 'Customer/@Name',
       (SELECT Item_Num AS '@Item',
                pa.Code AS '@PartCode'
        FROM tblSalesItem si
            LEFT JOIN tblPart pa ON pa.Id = si.Part_Id
        WHERE si.SalesOrder_ID = so.Id 
        FOR XML PATH('SalesItem') , type) 
FROM tblSalesOrder so
    JOIN tblCustomer cu ON so.customer_id = cu.ID
FOR XML PATH('SalesOrder'), ROOT('SalesOrders')
Run Code Online (Sandbox Code Playgroud)

生成这个XML

<SalesOrders>
  <SalesOrder Id="13" Code="C1002     ">
    <Customer Code="ROBERTS   " Name="Roberts Equipment  Inc." />
    <SalesItem Item="1" PartCode="FP-0001" />
    <SalesItem Item="2" PartCode="FP-0003" />
  </SalesOrder>
  <SalesOrder Id="15" Code="C1004     ">
    <Customer Code="EXBEL-LIFTS" Name="Exbel Lifts Inc." />
    <SalesItem Item="1" />
  </SalesOrder>
</SalesOrders>
Run Code Online (Sandbox Code Playgroud)

我可以逐列控制元素和属性的使用.我可以创建元素的属性以将相关列组合在一起.我可以使用子查询来生成嵌套元素.您甚至可以使用返回XML的函数来生成任意深度的树.

Mit*_*eat 2

FOR XML PATH不在 ANSI SQL-92 标准中,因此将由各个供应商决定。我不知道 Oracle 或 MySQL 中有任何类似的东西。