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