Você deve ser capaz de fazer isso facilmente:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
O .value
método fornece o valor real e você pode defini-lo para ser retornado como um VARCHAR (), que você pode verificar com uma instrução LIKE.
Veja bem, isso não vai ser muito rápido. Portanto, se você tiver determinados campos em seu XML que precise inspecionar muito, poderá:
- crie uma função armazenada que obtém o XML e retorna o valor que você está procurando como um VARCHAR ()
- definir um novo campo computado em sua tabela que chama esta função, e torná-lo uma coluna PERSISTED
Com isso, você basicamente "extrairia" uma determinada parte do XML em um campo computado, tornaria-o persistente e, então, poderia pesquisar com muita eficiência (diabos: você pode até INDEXAR esse campo!).
Marc