dimanche 20 mai 2012

Búsqueda para las filas de caracteres especiales en SQL Server

Mientras que para solucionar un problema de programación hoy en día me di cuenta de que no se puede utilizar una búsqueda como para las columnas de cadena que contiene caracteres especiales, como% o _ sin necesidad de utilizar una sintaxis especial. Entender el problema en sólo unos minutos, pero la sintaxis de la memoria es siempre más fácil si usted escribir sobre ella.

Así que sí, este post es sólo para mi beneficio. Es de esperar que ayudar a alguien más también.

Digamos que usted desea encontrar todos los campos que contienen el texto "100%", por lo que juntos esta consulta:

SELECT * FROM nombretabla donde FieldName LIKE '%% 100%'

En lugar de lo que quería, obtendrá todas las filas que contienen "100'', así como las filas que contienen" 100% ".

El problema aquí es que SQL Server utiliza el signo de porcentaje, el subrayado y los corchetes como caracteres especiales. Simplemente no se puede utilizar como un personaje normal en una consulta LIKE sin escapar ellos.

Plaza de escape Soporte

Puede rodear el% o _ con corchetes para indicar a SQL Server que el personaje en el interior es un personaje regular.

SELECT * FROM nombretabla donde FieldName LIKE '% 100 [%]%'

T-SQL sintaxis de escape

Como alternativa, puede añadir el operador ESCAPE en su consulta, y añadir un carácter antes de que el valor que se desea escapar.

SELECT * FROM nombretabla donde FieldName LIKE '% 100 %%' ESCAPE ''

El escape '' parte de la consulta le dice al motor SQL para interpretar el personaje después de la como un carácter literal en lugar de como un comodín.

Personalmente, creemos que el segundo método más fácil de tratar, y se puede utilizar para escapar de un corchete así.

Aucun commentaire:

Enregistrer un commentaire