El operador LIKE de T-SQL es una de las adiciones más útiles a la declaración SELECT de SQL. Esta última recupera un conjunto de resultados, y puedes filtrar fácilmente los resultados usando operadores de igualdad y la cláusula WHERE para seleccionar ciertas condiciones específicas. Pero ¿qué pasa con aquellos momentos en los que podrías querer seleccionar filas que se basan en valores parciales? Ahí es donde entra en juego la declaración SQL LIKE, y te mostraré cómo usarla en este tutorial.
Sintaxis de SQL LIKE
Puedes ver la sintaxis básica del operador LIKE en la siguiente lista:
- Primero, proporcionas la expresión que deseas que coincida. Esto suele ser un nombre de columna.
- A continuación, opcionalmente puedes especificar NOT para hacer que esta expresión funcione para todas las condiciones que no coincidan. Usar la condición NOT LIKE no es la forma más común de usar el operador LIKE.
- Entonces, necesitas proporcionar el patrón para que coincida. Esto puede ser un literal o puede incluir caracteres comodín que hacen que el proceso de coincidencia sea mucho más flexible.
- Esto puede opcionalmente ser seguido por un carácter de escape que puede ser utilizado para ayudar a buscar caracteres comodín.
- Si alguno de los argumentos no es un tipo de datos de cadena de caracteres, SQL Server lo convertirá a un tipo de datos de cadena de caracteres.
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
SQL LIKE y caracteres comodín
Antes de adentrarnos en detalles, debes saber que la coincidencia de patrones SQL LIKE puede incluir caracteres regulares así como caracteres comodín. Los caracteres comodín te permiten seleccionar una cadena de caracteres específica que coincida con el patrón de comodín.
Para la coincidencia de patrones, los caracteres regulares deben coincidir con los caracteres especificados en la cadena de caracteres. Sin embargo, los caracteres comodín pueden coincidir con cualquier fragmento de la cadena de caracteres. El uso de caracteres comodín hace que el operador LIKE sea más flexible que los operadores de comparación de cadenas de igualdad ( = y != ).
El operador LIKE acepta cuatro tipos diferentes de caracteres comodín. Cada carácter comodín realiza una función de comparación diferente, y puedes aprender más en la siguiente tabla.
Wildcard character | Description |
% (percent sign) | Any string of zero or more characters. |
_ (underscore) | Any single character. |
[ ] | Any single character within the specified range [a-f] or set [abcdef]. |
[^] | Any single character not within the specified range [^a-f] or set [^abcdef]. |
El operador LIKE devuelve TRUE si la match_expression coincide con el patrón especificado. Vamos a utilizar algunos ejemplos para mostrarte cómo utilizar el operador SQL LIKE con la base de datos de ejemplo AdventureWorksLT2019.
Coincidencia de múltiples caracteres comodín
El comodín % representa cero o más caracteres. La siguiente consulta recupera todas las filas de la tabla ‘Person.Person’ donde el ‘Apellido’ comienza con la letra ‘A’.
USE AdventureWorksLT2019; SELECT FirstName, LastName FROM SalesLT.Customer WHERE LastName LIKE 'A%';

Comodín de un solo carácter
El comodín _ representa un solo carácter. La siguiente consulta de ejemplo recupera todas las filas de la tabla ‘SalesLT.Product’ donde el ‘Nombre’ tiene exactamente cuatro caracteres de cualquier tipo seguidos de un guion.
USE AdventureWorksLT2019; SELECT ProductID, Name FROM SalesLT.Product WHERE Name LIKE '____-%';

Comodín para un conjunto de caracteres
El [] comodín representa cualquier carácter único dentro del rango o conjunto especificado. La siguiente declaración SQL recupera todas las filas de la tabla ‘SalesLT.Product’ donde el ‘Nombre’ comienza con ‘B’, ‘C’ o ‘D’.
USE AdventureWorksLT2019; SELECT Name FROM SalesLT.Product WHERE Name LIKE '[BCD]%';

Emparejamiento de comodines para un rango de caracteres
También puedes usar la cláusula LIKE para admitir búsquedas de rango. Esta consulta recupera los apellidos que terminan con ‘ee’ y comienzan con cualquier carácter único entre las letras ‘C’ y ‘L’.
USE AdventureworksLT2019; SELECT LastName, FirstName FROM SalesLT.Customer WHERE LastName LIKE '[C-L]ee'

Excluyendo caracteres que no forman parte del conjunto especificado
El [^] comodín representa cualquier carácter único que no esté dentro del rango o conjunto especificado. La siguiente consulta recupera todas las filas de la tabla ‘SalesLT.Product’ donde el ‘Nombre’ no comienza con ‘A’, ‘B’ o ‘C’.
USE AdventureworksLT2019; SELECT Name FROM SalesLT.Product WHERE Name LIKE '[^ABC]%';

Usando múltiples condiciones de coincidencia de comodines
La cláusula LIKE también se puede combinar con múltiples comodines en una sola consulta. La siguiente consulta utiliza varios comodines de SQL para recuperar todas las filas de la tabla ‘Person.Person’ donde el ‘FirstName’ contiene la letra ‘a’ y el ‘LastName’ tiene cualquier carácter seguido de ‘l’.
USE AdventureworksLT2019; SELECT FirstName, LastName FROM SalesLT.Customer WHERE FirstName LIKE '%a%' AND LastName LIKE '_l%';

Búsqueda de caracteres comodín
La coincidencia de comodines añade mucho poder y flexibilidad al operador LIKE. Sin embargo, es posible que te preguntes cómo podrías usar LIKE para hacer coincidir uno de estos caracteres comodín en sí mismos.
Para hacer esto, puedes encerrar el carácter comodín entre corchetes, lo que te permite usar un carácter comodín como un carácter literal. Puedes ver algunos ejemplos en la siguiente tabla.
Pattern | Search value |
LIKE ‘%2[%]%’ | 2% |
LIKE ‘%[_]m%’ | _m |
LIKE ‘%[ [ ]%’ | [ |
- El primer ejemplo hace coincidir el número 2 seguido del carácter comodín de porcentaje.
- El segundo ejemplo hace coincidir el carácter de subrayado seguido de la letra m.
- El tercer ejemplo se utiliza para hacer coincidir caracteres de corchetes cuadrados.

La declaración LIKE de SQL mejora la declaración SELECT de SQL
Deberías entender mejor cómo puedes usar el operador SQL LIKE para mejorar la potencia y flexibilidad de la instrucción SQL SELECT. Aquí también te mostré cómo usar la cláusula LIKE con varios caracteres comodín. Entre la coincidencia de múltiples caracteres comodín, la coincidencia de un solo carácter, la coincidencia de un conjunto de caracteres o la exclusión de caracteres de los resultados, realmente tienes muchas posibilidades a tu disposición.
Source:
https://petri.com/sql-like/