SQL XML Xquery запрос данных с использованием переменной в выборе узла? - PullRequest
2 голосов
/ 11 мая 2011

Я явно что-то упускаю прямо перед собой, однако у меня есть SQL-запрос SQL 2008 следующим образом:

select distinct cast(customFields_xml.query('data(/root/cf_item_type)') as varchar) as c1
from designs

.. что я на самом деле пытаюсь добиться, это сделать переменную "cf_item_type", потому что я хочу передать узел в качестве параметра для процесса ..

Так что на самом деле я пытаюсь получить что-то вроде:

(@ cf будет передан как параметр, но объявлен, например, как use)

declare @cf varchar
set @cf='cf_item_type'
select distinct cast(customFields_xml.query('data(/root/@cf)') as varchar) as cloth from designs

.. Итак, вы можете видеть, что я пытаюсь использовать переменную @cf в операторе xquery ..

Любые указатели / справки были бы великолепны !!

1 Ответ

6 голосов
/ 11 мая 2011

Это может делать то, что вы хотите.

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
...