我显然在我面前遗漏了一些东西,但是我的SQL 2008 XML查询如下:
select distinct cast(customFields_xml.query('data(/root/cf_item_type)') as varchar) as c1
from designs
..我实际想要实现的是将“cf_item_type”变为变量,因为我想将节点作为参数传递给proc ..
所以实际上,我试图结束这样的事情:
(@ cf将作为参数传递,但声明例如使用)
declare @cf varchar
set @cf='cf_item_type'
select distinct cast(customFields_xml.query('data(/root/@cf)') as varchar) as cloth from designs
..所以你可以看到我试图在xquery语句中使用@cf变量..
任何指针/帮助都会很棒!!
答案 0 :(得分:6)
这可能会做你想要的。
declare @cf varchar(20)
set @cf='cf_item_type'
select distinct
cast(customFields_xml.query(
'data(/root/*[local-name(.) = sql:variable("@cf")])') as varchar(20)) as cloth
from designs