使用forxml多次选择相同的元素?

时间:2013-02-14 19:08:14

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

我找到了使用for xml创建xml here的示例。

但在我的情况下,我需要创建具有多个相似元素的xml。类似的东西:

<params>
  <param>value1</param>
  <param>value2</param>
</param>

但是如果我尝试以下查询:

SELECT (
  SELECT
'value1' AS [param],
'value2' AS [param]
FOR XML PATH('params'))

我的结果是<params><param>value1value2</param></params>。不是我想要的输出。

关于如何获得所需输出的任何建议?

1 个答案:

答案 0 :(得分:1)

-- An extra empty column in between
select
  'value1' AS [param],
  '',
  'value2' AS [param]
for xml path('params')

-- A derived table by using union all
select 'value1' union all
select 'value2'
for xml path('param'), root('params')

-- Subqueries in the field list
select
  (select 'value1' for xml path('param'), type),
  (select 'value2' for xml path('param'), type)
for xml path('params')