Vous devriez pouvoir le faire assez facilement:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
La .value
méthode vous donne la valeur réelle, et vous pouvez la définir pour qu'elle soit renvoyée comme un VARCHAR (), que vous pouvez ensuite vérifier avec une instruction LIKE.
Attention, cela ne va pas être très rapide. Donc, si vous avez certains champs dans votre XML que vous devez inspecter beaucoup, vous pouvez:
- créer une fonction stockée qui récupère le XML et renvoie la valeur que vous recherchez en tant que VARCHAR ()
- définir un nouveau champ calculé sur votre table qui appelle cette fonction, et en faire une colonne PERSISTÉE
Avec cela, vous "extrairez" fondamentalement une certaine partie du XML dans un champ calculé, le rendriez persistant, et vous pourrez alors rechercher très efficacement dessus (diable: vous pouvez même INDEXER ce champ!).
Marc