以下是一个示例,其中涉及Parameter值的输出需要以单列连接的简单方式产生,此xml中没有ns,我使用的是SQL Server 2012。
我尝试获取以下输出结果,下面的代码片段和xml示例将生成3列,我希望只生成1列。
100 | Param1
,Param22
,Param3322
XML和代码:
DECLARE @xml XML = '<Parameters>
<Parameter>
<Name>Param1</Name>
</Parameter>
<Parameter>
<Name>Param22</Name>
</Parameter>
<Parameter>
<Name>Param3322</Name>
</Parameter> </Parameters> '
SELECT 100 id
,@XML xmlinfo
INTO #t -- drop table #t -- select * from #t
DECLARE @xml XML = (
SELECT xmlinfo
FROM #t
)
SELECT (
SELECT ID
FROM #t
) AS ID
,X.STockData.query('Name[1]').value('.', 'Varchar(10)') AS 'Parameter'
---CONCAT(X.STockData.query('Name[1]').value('.','Varchar(10)'),X.STockData.query('Name[2]').value('.','Varchar(10)')) AS 'Parameter'
FROM @xml.nodes('Parameters/Parameter') AS X(StockData)