【发布时间】:2014-05-23 07:26:44
【问题描述】:
我正在尝试编写一个 sql 查询,该查询将以我可以转换为 Excel 电子表格的格式生成 xml。所以原来的sql表包含以下数据
id Run Name Outcome
1 Run1 Test1 1
2 Run2 Test2 2
到目前为止我已经成功生成的sql查询如下
select * from
(
SELECT * from table1
) t
for xml path('row'), root('sheetData')
这会产生以下 xml
<sheetData>
<row r="1">
<Run>Run1</Run>
<Name>Test1</Name>
<Outcome>1</Outcome>
</row>
<row r="2">
<Run>Run2</Run>
<Name>Test2</Name>
<Outcome>2</Outcome>
</row>
</sheetData>
所以我需要得到的是下面的xml格式
<?xml version="1.0" encoding="UTF-8"?>
<sheetData>
<row r="1">
<c r="A1" t="inlineStr">
<is>
<t>Run1</t>
</is>
</c>
<c r="B1" t="inlineStr">
<is>
<t>Test1</t>
</is>
</c>
<c r="C1" t="inlineStr">
<is>
<t>1</t>
</is>
</c>
</row>
<row r="2">
<c r="A2" t="inlineStr">
<is>
<t>Run2</t>
</is>
</c>
<c r="B2" t="inlineStr">
<is>
<t>Test2</t>
</is>
</c>
<c r="C2" t="inlineStr">
<is>
<t>2</t>
</is>
</c>
</row>
</sheetData>
现在我已经求助于对第一个 xml 格式进行转换以获得所需的输出,但是我希望构建一个 sql 查询,我可以使用它来直接生成它,而无需进行额外的转换。感谢您的帮助。
【问题讨论】:
-
这听起来更像是一个 sql 问题,而不是 xslt 问题,因此可能值得删除
xslt标签,并添加一个sql(或t-sql)标签。 -
替换为 t-sql。谢谢指点。
标签: sql-server tsql openxml select-for-xml