选择查询xml数据

时间:2014-09-16 12:16:33

标签: sql sql-server xml tsql

我有;

declare @result xml
set @result='<root><data><color20>red</color20></data></root>'

select tab.col('@color20','varchar(500)'
    from @result.nodes(/data)tab(col)

我想从变量@period

中带20
select tab.col('@color+'+@period+'','varchar(500)'
    from @result.nodes(/data)tab(col)

当我运行上面的查询时,我得到以下错误 XML数据类型方法“value”的参数1必须是字符串文字。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询

declare @result xml
set @result='<root><data><color20>red</color20><color21>blue</color21></data></root>'
declare @period varchar(10)
set @period='20'

select tab.col.value('fn:local-name(.)', 'nvarchar(max)') as Name,
   tab.col.value('.', 'nvarchar(max)') as Value 
from @result.nodes('/root/data/*')tab(col)
where tab.col.value('fn:local-name(.)', 'nvarchar(max)')='color'+ @period
相关问题