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