27

XML 値の列を検索して、a に文字列が含まれているかどうかを確認したいと考えています。スキーマがわかりません。文字列がどこかに含まれているかどうかを知りたいです。この状況で XPATH が機能するかどうかはわかりません。

に相当する

Select s.Name, ts.ValueXML from table t (nolock) 
join table2 ts (nolock) on t.key_Id = ts.key_Id
join table3 s (nolock) on ts.key_Id=s.key_Id
where s.Name like '%Lab%' and ts.ValueXML  like '%PreviewDateRange%'

エラー: like 関数の引数 1 の引数データ型 xml が無効です。

関連するts表の列

ValueXml (XML(.), null)

私が探しているアイテムは属性でなければなりません。したがって、上記が不可能な場合は、その属性を含むものはすべて良い代替手段になります。

4

2 に答える 2

55

最も簡単な(ただし、実行するのが間違いなく最速ではない)方法は、列をnvarchar(max)に渡す前ににキャストすることlikeです。

cast(ValueXml as nvarchar(max)) like '%PreviewDateRange%'
于 2012-05-06T15:18:40.803 に答える