【问题标题】:SQL Server table data to xml file with column valueSQL Server 表数据到带有列值的 xml 文件
【发布时间】:2017-11-23 08:57:35
【问题描述】:

我有这样的数据:

是否可以使用来自该表的 SQL 查询生成此 XML 文件作为输出?

【问题讨论】:

  • 我知道 SQL 可以像 <data_t><code>subxxx</code><amount>123.00</amount><data_t/>.. 一样为您提供 XML,但与您期望的结果不同
  • 是的。我还管理生成带有根和标签的 XML 文件 - bur 接收方需要这种格式的文件。 ://
  • 我个人认为你不能用 SQL 得到这个,它似乎比普通的 XML 更重要。

标签: sql sql-server xml


【解决方案1】:

不确定您实际遇到了什么问题,但您需要使用 for xml path() 并将它们嵌套在几个子查询中。

declare @T table(code varchar(30), amount money);

insert into @T(code, amount) values
('totalPAS', 389),
('sub270', 0),
('sub770', 0),
('sub270', 0);

select 'datfile' as '@objectCode', 
       (
       select T.code as '@instanceCode',
              'data_t' as '@objectCode',
              (
              select 'code' as 'ColumnValue/@name',
                     T.code as 'ColumnValue',
                     null,
                     'amount' as 'ColumnValue/@name',
                     T.amount as 'ColumnValue'
             for xml path('CustomInformation'), type
             ) 
       from @T as T
       for xml path('instance'), type
       )
for xml path('customObjectInstances');

结果:

【讨论】:

  • 哇!工作!千百次感谢你!一种选择:如果我有文件的所谓标题信息 - 将其添加到结果中的最简单方法是什么?
  • @Tsy79 如果您正在谈论 XML 声明,请查看此处。 stackoverflow.com/questions/5423560/…
  • 请在下面找到我的下一级问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多