2

我显然在我面前遗漏了一些东西,但是我有这个 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变量..

任何指示/帮助都会很棒!

4

1 回答 1

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
于 2011-05-11T13:48:18.583 回答