2011-05-11 30 views
2

我顯然缺少就在我面前的東西,但是我有這樣的SQL 2008 XML查詢,如下所示:在節點選擇中使用變量的SQL XML Xquery數據查詢?

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

..什麼,我其實是想實現的是使「cf_item_type」的變量,因爲我想在節點作爲一個參數去一個進程傳遞..

所以在現實中,我試圖用類似落得:

(@cf將作爲PARAM通過,但在宣佈例如使用)

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

任何指針/幫助將是巨大的!

回答

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 
+0

嘿,我的天啊!那裏有一些聰明的大腦! :)謝謝你的迴應,它工作完美..真的需要閱讀更多關於xquery我想!你不會碰巧知道任何好的資源嗎? 再次感謝! – 2011-05-11 22:47:12

+1

你可以看看這裏。 http://msdn.microsoft.com/en-us/library/ms345122%28v=SQL.90%29.aspx – 2011-05-12 05:15:13