2011-06-30 34 views
1

我已經得到了加入一個XML節點上使用匹配表,像這樣的例子的圖:在XML節點上使用'LIKE'JOIN?

....CROSS APPLY xmlData.Nodes('/element/subElement').... 

的問題是,我們現在擁有的元素被稱爲「在element2」和「元素3」,這沒有得到已接。有沒有辦法包含這些,幾乎在節點上使用LIKE來挑選它們呢?

沿着這些東西線:

....CROSS APPLY xmlData.Nodes('/element%/subElement').... 

或者是加入這些額外的節點到手動的視圖的情況下?

感謝

回答

3

您可以使用XQuery表達式

CROSS APPLY xmlData.nodes('/*/subElement') 

更新

如果您需要更具體的您可以在初論starts-with使用

CROSS APPLY xmlData.nodes('/*[substring(local-name(),1,7)="element"]/subElement') 

會比較好韓substring,但它不能在SQL服務器2005年工作,我不能測試與SQL服務器2008年

+0

但是,這將返回一切,無論'元素'被稱爲?例如。它會選擇'/ apple/subElement'? – w69rdy

+0

@ w69rdy:是的,它會的。它相當於'.nodes('// subElement')' – Yuck

+0

@ w69rdy是的 - 我意識到這一點,並正在測試其他一些解決方案以更具體地匹配。我正在測試的SQL 2005中不支持使用'starts-with'的第一次嘗試,因此我決定使用'contains'。看我的編輯。 – cordsen