Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Servidor SQL: condición LIKE
Este tutorial de SQL Server describe cómo usar ME GUSTA condiciones La coincidencia de patrones se realiza en SQL Server (Transact-SQL) mediante sintaxis y ejemplos.
describir
Las condiciones LIKE de SQL Server (Transact-SQL) permiten caracteres comodín en la cláusula WHERE de una instrucción SELECT, INSERT, UPDATE o DELETE. Esto le permite realizar coincidencias de patrones.
sintaxis
La sintaxis para una condición LIKE en SQL Server (Transact-SQL) es:
expression LIKE pattern [ ESCAPE 'escape_character' ]
parámetro o parámetro
Expresión Una expresión de carácter, como una columna o un campo.patrón
Una expresión de caracteres que contiene una coincidencia de patrones. Los modos que puede elegir son:
comodín | explique |
---|---|
% | Le permite hacer coincidir cualquier cadena de cualquier longitud (incluida la longitud cero) |
_ | le permite hacer coincidir un solo carácter |
[ ] | te permite emparejar [ ] paréntesis (por ejemplo, [abc] coincidirá con los caracteres a, b o c) |
[^] | te permite emparejar no [^] paréntesis (por ejemplo, [^abc] coincidirá con cualquier carácter que no sea un carácter a, b o c) |
escape_character es opcional. Le permite probar instancias literales de caracteres comodín como % o _.
Ejemplo: uso del comodín % (comodín de porcentaje)
El primer ejemplo LIKE de SQL Server que veremos implica el uso del comodín % (comodín de porcentaje).
Expliquemos cómo funciona el comodín % en condiciones LIKE de SQL Server. Queremos encontrar a todos los empleados cuyo apellido comience con “B”.
Por ejemplo:
SELECT * FROM employees WHERE last_name LIKE 'B%';
También puede usar el comodín % varias veces en la misma cadena. Por ejemplo,
SELECT * FROM employees WHERE last_name LIKE '%o%';
En este ejemplo de condición LIKE de SQL Server, buscamos a todos los empleados cuyo apellido contenga la letra “o”.
Ejemplo: uso de _ comodín (comodín de subrayado)
A continuación, expliquemos cómo funciona el comodín _ (comodín de subrayado) en condiciones LIKE de SQL Server. Recuerda que el comodín _ solo busca un carácter.
Por ejemplo:
SELECT * FROM employees WHERE first_name LIKE 'Ad_m';
Este ejemplo de condición LIKE de SQL Server devuelve todos los empleados cuyo nombre tiene 4 caracteres, donde los primeros dos caracteres son “Ad” y el último carácter es “m”. Por ejemplo, podría devolver empleados con nombres como “Adam”, “Adem”, “Adim”, “Adom”, “Adum”, etc.
Aquí hay otro ejemplo:
SELECT * FROM employees WHERE employee_number LIKE '123_';
Puede encontrar que está buscando un número de empleado, pero solo tiene 3 de 4 dígitos. El ejemplo anterior podría recuperar 10 registros (donde el valor faltante podría ser igual a cualquier valor del 0 al 9). Por ejemplo, puede devolver el número de empleado como:
1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239
Ejemplo – uso [ ] Comodines (comodines de corchetes)
A continuación, vamos a explicar cómo [ ] Los comodines (comodines de corchetes) se aplican a las condiciones LIKE de SQL Server. Recuerde que lo que está encerrado entre corchetes es el carácter que está tratando de hacer coincidir.
Por ejemplo:
SELECT * FROM employees WHERE first_name LIKE 'Sm[iy]th';
Este ejemplo de condición LIKE de SQL Server devuelve todos los empleados cuyo nombre tiene 5 caracteres, donde los dos primeros caracteres son “Sm”, los dos últimos caracteres son “th” y el tercer carácter es “i” o “y”. Entonces, en este caso, coincidiría con “Smith” o “Smyth”.
Ejemplo – uso [^] Comodín (corchetes con comodín ^)
A continuación, vamos a explicar cómo [^] Los comodines (corchetes con comodines ^) se aplican a las condiciones LIKE de SQL Server. Recuerde, lo que está encerrado entre corchetes son caracteres que no desea hacer coincidir.
Por ejemplo:
SELECT * FROM employees WHERE first_name LIKE 'Sm[^iy]th';
Este ejemplo de condición LIKE de SQL Server devolverá todos los empleados cuyo nombre tiene 5 caracteres, donde los dos primeros caracteres son “Sm”, los dos últimos caracteres son “th” y el tercer carácter no es ni “i” ni “y” ” . Entonces, en este caso, coincidiría con valores como “Smath”, “Smeth”, “Smoth”, etc. Pero no coincidirá con “Smith” o “Smyth”.
Ejemplo: uso del operador NOT
A continuación, veamos cómo usar el operador NOT de SQL Server con comodines.
Usemos el comodín % con el operador NOT.También puede usar la condición LIKE de SQL Server para encontrar last_name como No Comience con “B”.
Por ejemplo:
SELECT * FROM employees WHERE last_name NOT LIKE 'B%';
Al colocar el operador NOT delante de la condición LIKE de SQL Server, puede recuperar todos los empleados cuyo apellido es No Comience con “B”.
Ejemplo: uso de caracteres de escape
Es importante entender cómo “escapar de los caracteres” al hacer coincidir patrones. Estos ejemplos se ocupan específicamente de los caracteres de escape en SQL Server.
Suponga que desea buscar el carácter % o _ en una condición LIKE de SQL Server. Puede usar el carácter Escape para hacer esto.
Tenga en cuenta que solo puede definir caracteres de escape como un solo carácter (longitud 1).
Por ejemplo:
SELECT * FROM employees WHERE secret_hint LIKE '123!%455' ESCAPE '!';
Este ejemplo de condición LIKE de SQL Server identifica el carácter ! como un carácter de escape. Esta declaración devolverá a todos los empleados un secret_hint de 123%455.
Aquí hay otro ejemplo más complejo del uso de caracteres de escape en condiciones LIKE de SQL Server.
SELECT * FROM employees WHERE secret_hint LIKE 'H%!%' ESCAPE '!';
Este ejemplo de condición LIKE de SQL Server devuelve todos los empleados cuya sugerencia_secreta comienza con H y termina con %. Por ejemplo, devuelve un valor como “Ayuda%”.
También puede usar caracteres de escape con el carácter _ en condiciones LIKE de SQL Server.
Por ejemplo:
SELECT * FROM employees WHERE secret_hint LIKE 'H%!_' ESCAPE '!';
Este ejemplo de condición LIKE de SQL Server devuelve todos los empleados cuyo secret_hint comienza con H y termina con _. Por ejemplo, devolverá un valor como “Ayuda_”.