Usted debe ser capaz de hacer esto con bastante facilidad:
SELECT *
FROM WebPageContent
WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
El método .value
le proporciona el valor real y puede definirlo para que se devuelva como VARCHAR(), que luego puede verificar con una instrucción LIKE.
Eso sí, esto no va a ser muy rápido. Así que si usted tiene ciertos campos en el código XML que usted necesita para inspeccionar una gran cantidad, usted podría:
- crear una función almacenada que recibe el XML y devuelve el valor que está buscando como VARCHAR()
- definir un nuevo campo calculado en su mesa, que llama a esta función, y que sea una columna PERSISTED
Con esto, usted básicamente "extraer" una cierta porción del XML en un campo calculado, que persistió , y luego puedes buscar muy eficientemente en él (diablos: ¡puedes incluso INDICAR ese campo!).
Marc
posible duplicado de [La mejor manera de buscar los datos almacenados como XML en Sql Server?] (http://stackoverflow.com/questions/52945/best-way-to-search-data-stored-as-xml-in-sql-server) –