Buscar filas con caracteres especiales en SQL Server

Entonces sí, esta publicación es solo para mi beneficio. Esperemos que ayude a alguien más también. Supongamos que desea buscar cualquier campo que contenga el texto 100%, por lo que prepara esta consulta:

Al solucionar un problema de programación hoy, noté que no se puede usar una búsqueda LIKE para columnas de cadena que contengan caracteres especiales como% o _ sin usar una sintaxis especial. Resolver el problema tomó solo unos minutos, pero recordar la sintaxis siempre es más fácil si escribes sobre él.

Entonces sí, esta publicación es solo para mi beneficio. Esperemos que ayude a alguien más también.

Supongamos que desea buscar cualquier campo que contenga el texto «100%», por lo que prepara esta consulta:

SELECCIONAR * DESDE nombre de tabla DONDE nombre de campo ME GUSTA ‘% 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 usa el signo de porcentaje, el subrayado y los corchetes como caracteres especiales. Simplemente no puede usarlos como un carácter simple en una consulta LIKE sin escapar de ellos.

Escape de corchetes

Puede rodear el% o _ con corchetes para indicarle a SQL Server que el carácter que se encuentra dentro es un carácter regular.

SELECCIONAR * DESDE nombre de tabla DONDE nombre de campo ME GUSTA ‘% 100 [%]%’

Sintaxis de T-SQL ESCAPE

Alternativamente, puede agregar el operador ESCAPE a su consulta y agregar un carácter \ antes del valor del que desea escapar.

SELECCIONAR * DESDE nombre de tabla DONDE nombre de campo ME GUSTA ‘% 100 \ %%’ ESCAPE ‘\’

La parte ESCAPE ‘\’ de la consulta le dice al motor SQL que interprete el carácter después de \ como un carácter literal en lugar de un comodín.

Personalmente, encuentro que el segundo método es más fácil de manejar, y también puedes usarlo para escapar de un corchete.

Rate article
labsfabs.com
Add a comment