【问题标题】:SQL Server : FOR XML specific outputSQL Server : FOR XML 特定输出
【发布时间】:2015-11-11 22:39:22
【问题描述】:

我一直在尝试(尚未成功)生成以下 XML 输出

<table>
    <row>
        <column name="column_name">[value]</column>
        <column name="column_name">[value]</column>
    </row>
    <row>
        <column name="column_name">[value]</column>
        <column name="column_name">[value]</column>
    </row>
</table>

任何人都可以建议一条可以让我实现此输出的路线吗?

提前感谢您提供的任何帮助。

【问题讨论】:

  • 只需谷歌“SQL SERVER SELECT FOR XML”。这个网站上有很多东西,包括教程和许多答案。如果您有具体问题,请告诉我们。
  • 您能否举一些迄今为止您尝试过的 SQL 语句示例? StackOverflow 是最好的,当您有一个特定的问题或问题要根据您迄今为止所付出的努力来解决。

标签: sql sql-server xml sql-server-2008 tsql


【解决方案1】:

不知道这是否仍然令人感兴趣,但代码是这样的:

(诀窍是两列声明之间的“空节点”...)

DECLARE @tbl TABLE(col1 INT, col2 VARCHAR(100));
INSERT INTO @tbl VALUES(1,'test1'),(2,'test2');

SELECT 'col1' AS [column/@name]
      ,col1 AS [column]

      ,'' --this is needed to allow the same name twice...

      ,'col2' AS [column/@name]
      ,col2 AS [column]
FROM @tbl
FOR XML PATH('row'),ROOT('table');

/*
<table>
  <row>
    <column name="col1">1</column>
    <column name="col2">test1</column>
  </row>
  <row>
    <column name="col1">2</column>
    <column name="col2">test2</column>
  </row>
</table>
*/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-28
    • 2023-03-03
    • 2017-06-12
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多