Powinieneś być w stanie to zrobić dość łatwo:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
.value
Metoda daje rzeczywistą wartość, można określić, które mają być zwracane jako VARCHAR (), które można następnie skontaktować się z oświadczeniem podobne.
Pamiętaj, że to nie będzie strasznie szybkie. Więc jeśli masz pewne pola w swoim kodzie XML, które musisz często sprawdzać, możesz:
- utwórz zapisaną funkcję, która pobiera XML i zwraca wartość, której szukasz jako VARCHAR ()
- zdefiniuj nowe pole obliczeniowe w tabeli, które wywołuje tę funkcję, i uczyń je kolumną PERSISTED
Dzięki temu w zasadzie „wyodrębniłbyś” pewną część XML do pola obliczeniowego, sprawił, że był on utrwalony, a następnie mógłbyś bardzo efektywnie w nim wyszukiwać (do diabła: możesz nawet zindeksować to pole!).
Marc