2011-06-30 8 views
1

私はこの例のように、xmlノードの試合を使用してテーブルを結合するビューを持っている:XMLノードで 'LIKE'を使用してJOINする?

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

問題は、我々は今、取得しない「要素2」と「要素3」と呼ばれる要素を持っています拾った。これらを含める方法はありますか?ほとんどの場合、ノード上のLIKEを使用してこれを選択しますか?

これらの線に沿って何か:

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

または手動ビューにこれらの余分なノードを追加する場合は?

おかげ

答えて

3

あなたは

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

XQuery式を使用することができます更新

あなたはより具体的にする必要がある場合は、theroy starts-with

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

を使用することができますでしょうより良くなるhan substringでもSQL-server-2005では動作しません。SQL-server-2008でテストすることはできません

+0

しかし、 'element'の名前に関係なく、すべてのものが返されますか?例えば。それは '/ apple/subElement'をピックアップしますか? – w69rdy

+0

@ w69rdy:はい、そうです。これは '.nodes( '// subElement')'と同等です。 – Yuck

+0

@ w69rdyはい - それを実現し、より具体的に一致させるためのいくつかの他の解決策をテストしていました。 'started-with'を使った私の最初の試みは、私がテストしているSQL 2005ではサポートされていないので、' contains'を解決しました。私の編集を参照してください。 – cordsen

関連する問題