当前位置: 首页 > 面试题库 >

获取嵌套的XML输出sql server

高经艺
2023-03-14
问题内容

我在sql server数据库中的xml输出有问题。我的桌子:

CREATE TABLE [dbo].[test_table](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [firstname] [nvarchar](255) NULL,
    [lastname] [nvarchar](255) NULL,
    [city] [nvarchar](255) NULL,
    [street] [nvarchar](255) NULL,
    [streetno] [int] NULL
)

我想要输出,其中Address嵌套在每个Person内,如下所示:

<Root>
  <Person id="1">
    <firstname>Stefanie</firstname>
    <lastname>Buckley</lastname>
    <Address>
      <city>Oklahoma</city>
      <street> Cowley Road</street>
      <streetno>34</streetno>
    </Address>
  </Person>
  <Person id="2">
    <firstname>Sandy</firstname>
    <lastname>Mc Gee</lastname>
    <Address>
      <city>Montgomery</city>
      <street> Hague Parkway</street>
      <streetno>27</streetno>
    </Address>
  </Person>
</Root>

我已经尝试过嵌套选择:

 select tbl1.id '@id', tbl1.firstname, tbl1.lastname,
 (
 select city,street,streetno from test_table as tbl2
 where tbl2.id = tbl1.id
 for xml path('Address')
 ) 
 from test_table as tbl1
 for xml path('Person'), Root('Root')

但是输出是这样的:

<Root>
  <Person id="1">
    <firstname>Stefanie</firstname>
    <lastname>Buckley</lastname>&lt;Address&gt;&lt;city&gt;Oklahoma&lt;/city&gt;&lt;street&gt; Cowley Road&lt;/street&gt;&lt;streetno&gt;34&lt;/streetno&gt;&lt;/Address&gt;</Person>
  <Person id="2">
    <firstname>Sandy</firstname>
    <lastname>Mc Gee</lastname>&lt;Address&gt;&lt;city&gt;Anchorage&lt;/city&gt;&lt;street&gt; North Green Clarendon Road&lt;/street&gt;&lt;streetno&gt;29&lt;/streetno&gt;&lt;/Address&gt;</Person>
  <Person id="3">

我做错了什么?


问题答案:

您忘记了, type,不需要从表中读取信息。

select tbl1.id '@id'
    , tbl1.firstname
    , tbl1.lastname
    , (
        select city
            , street
            , streetno
        for xml path('Address'), type
    ) 
from test_table as tbl1
for xml path('Person'), type, Root('Root')


 类似资料:
  • 然后连空白节点都是嵌套的,这是我不想要的。有什么方法可以使用Jena获得这种结构吗?或者有没有其他的Java库可以更好地处理这一点?

  • 问题内容: 我只想获取嵌套字段,但不能,因为它不是叶字段。 我在下面尝试过,但是无法匹配嵌套对象中的每个ID和名称。 结果: 这是我的预期结果: 问题答案: 如果您没有某个查询应以某种方式匹配嵌套字段,则可以这样进行: 如果您还有一个查询,并且想返回 匹配 的 嵌套文档,则 可以这样操作(使用):

  • 我在java中从json访问嵌套值时遇到了一些困难。让我首先告诉我的过程来做这件事。 首先,我以XML文件的形式获取输入,然后将其转换为JSONObject。下面是我从FTL生成HTML的尝试 HTMLMakerDemo 我的FTL是 为了消除JSONparsing错误,我从下面这样做https://stackoverflow.com/a/51876242/12876529 所以我的问题是在我的X

  • 问题内容: 您认为获得线程工作结果的最佳方法是什么?想象一个执行一些计算的线程,您如何警告主程序计算完成? 您可以每隔X毫秒轮询某个称为“作业完成”的公共变量或其他方式,但是随后您将在结果可用时才收到结果……主代码将浪费时间等待它们。另一方面,如果使用较低的X,则轮询将浪费CPU太多次。 因此,您如何做才能知道线程或某些线程已经完成了工作? 抱歉,如果它看起来与此其他问题相似,我想这可能是 ebe

  • 问题内容: 我的网站上有一个MySQL数据库,我想知道如何通过PHP从表中的以下各列获取XML输出: 你做了 国家 问题答案: XMLWriter的示例。 输出:

  • 问题内容: 是否有可能将MySQL查询的输出直接转换为XML? 我指的是类似MSSQL的 SQL-XML 插件,例如: 返回文本(或精确地说是MSSQL中的xml数据类型),该文本包含根据表中的列生成的XML标记结构。 使用 SQL-XML ,还可以选择如下显式定义输出XML结构: 生成如下的XML代码: 您有什么线索可以在MySQL中实现吗? 预先感谢您的回答。 问题答案: 将XML与MySQL