使用列值作为另一个元素中的内容

时间:2018-01-03 13:32:08

标签: sql-server xml

我的MyTable结构如下:

ColumnA | ColumnB
-----------------
ValueA  | ValueB

并希望生成如下所示的XML:

<ValueA>ValueB</ValueA>

这不起作用,但它是我得到的最接近的。我收到语法错误;显然你不能在ROOT函数中使用列值。非常感谢任何建议。

SELECT ColumnB as "data()"
FROM MyTable
FOR XML PATH (''), ROOT(ColumnA)

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是创建一个包含xml的字符串,连接列的值,然后将其转换为xml:

--create table variable to hold sample data 
declare @MyTable table( ColumnA nvarchar(50),ColumnB nvarchar(50) ) 

--populate sample data 
insert into @MyTable select 'ValueA', 'ValueB'

select * from @MyTable 

SELECT cast('<' + ColumnA + '>' + ColumnB + '</' + ColumnA + '>'  as xml)
FROM @MyTable

结果如下:

enter image description here