我有;
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
中带20select tab.col('@color+'+@period+'','varchar(500)'
from @result.nodes(/data)tab(col)
当我运行上面的查询时,我得到以下错误 XML数据类型方法“value”的参数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