SELECT FOR XML,如何使用?

发布于 2024-09-14 19:18:25 字数 233 浏览 5 评论 0原文

下面的这一语句:

SELECT
    ....
FROM
    ....
WHERE
    ....
FOR XML PATH('Booking'), ROOT('doc')

这将返回一个 XML 字符串中的所有记录。我希望每条记录都有自己的 XML 字符串。这有道理吗?是否可以。这样做有意义吗?

我正在使用 Microsoft SQL Server 2008

This statement below:

SELECT
    ....
FROM
    ....
WHERE
    ....
FOR XML PATH('Booking'), ROOT('doc')

This returns all the records in one XML string. I wish for each record to have its own XML string. Does this make sense? Is it possible. Does it make sense to do this?

I am using Microsoft SQL Server 2008

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋心╮凉 2024-09-21 19:18:25

如果我理解正确的话,您希望每一行生成一个单独的 XML 文档(不存在“XML 字符串”这样的东西)。您需要通过 FOR XML 运行每一行。例如,从表中获取每一行并使用 CROSS APPLY< /code>运算符投影单行 FOR XML TYPE。使用行表值构造函数进行连接。例如。使用 master..spt_values:

select t.*
 from master..spt_values s
 cross apply (
 select s.* 
 from (values (1) ) as t(c) 
 for xml path('Boookin'), root('Doc'), type) as t(x)

将每行返回一个 XML 文档,其结构如下:

<Doc>
  <Boookin>
    <name>rpc</name>
    <number>1</number>
    <type>A  </type>
    <status>0</status>
  </Boookin>
</Doc>

将 master..spt_values 替换为您选择的表。

If I understand correctly, you want each row to produce a separate XML document (there is no such thing as an 'XML string'). You need to run each row through the FOR XML. For example, take each row from the table and use the CROSS APPLY operator to project a single row FOR XML TYPE. Use a row table value constructor for the join. Eg. using master..spt_values:

select t.*
 from master..spt_values s
 cross apply (
 select s.* 
 from (values (1) ) as t(c) 
 for xml path('Boookin'), root('Doc'), type) as t(x)

will return one XML document per row, with a structure like:

<Doc>
  <Boookin>
    <name>rpc</name>
    <number>1</number>
    <type>A  </type>
    <status>0</status>
  </Boookin>
</Doc>

Substitute master..spt_values with your table of choice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文