У вас должно получиться это довольно легко:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
.value
Метод дает фактическое значение, и вы можете определить , что должно быть возвращено как VARCHAR (), который вы можете проверить с заявлением LIKE.
Имейте в виду, это не будет очень быстро. Итак, если у вас есть определенные поля в вашем XML, которые вам нужно много проверять, вы можете:
- создать сохраненную функцию, которая получает XML и возвращает искомое значение в виде VARCHAR ()
- определите новое вычисляемое поле в вашей таблице, которое вызывает эту функцию, и сделайте его PERSISTED столбцом
При этом вы в основном «извлекаете» определенную часть XML в вычисляемое поле, сохраняете ее, а затем можете очень эффективно искать по ней (черт возьми: вы даже можете ИНДЕКСИРОВАТЬ это поле!).
Марк