是否可以从SQL生成xml,我不知道级别的数量?

时间:2016-08-10 04:43:51

标签: sql-server

我有这个数据结构:

Site    SiteDescription SiteParent
1       Test 1          -1
2       Test 2          1
3       Test 3          1
4       Test 4          2
5       Test 5          2
6       Test 6          4
7       Test 7          4
8       Test 8          7

使用SQL Query和FOR XML,我想生成一个xml结果,格式如下:

<sites>
  <site id="1" desc="Test 1">
    <site id="2" desc="Test 2">
      <site id="4" desc="Test 2">
        <site id="6" desc="Test 2" />
        <site id="7" desc="Test 2">
          <site id="8" desc="Test 2" />
        </site>
      </site>
      <site id="5" desc="Test 2" />
    </site>
    <site id="3" desc="Test 3" />
  </site>
</sites>

我需要这样的格式,我知道我可以做到但包括子查询和使用FOR XML和PATH等。

我的问题是,我不知道这会有多少级别。它可能是3或10。

我不喜欢对特定数量的子查询进行硬编码,以期有望涵盖所有未来的子级别。

是否有一种递归的方式来产生这种结构,而今天,明天或明年的水平并不重要?

0 个答案:

没有答案