
En este tutorial, aprenderás a usar el operador LIKE
de SQL Server para verificar si una cadena de caracteres coincide con un patrón especificado.
Descripción general del operador LIKE de SQL Server
LIKE
es un operador lógico de SQL Server que determina si una cadena de caracteres coincide con un patrón especificado. Un patrón puede incluir caracteres regulares y caracteres comodín. El operador LIKE
se usa en la cláusula WHERE de las instrucciones SELECT, UPDATE y DELETE para filtrar filas en función de la coincidencia de patrones.
A continuación, se ilustra la sintaxis del operador LIKE
de SQL Server:
column | expression LIKE pattern [ESCAPE escape_character]
Patrón (pattern)
El patrón es una secuencia de caracteres para buscar en una columna o expresión. Puede incluir los siguientes caracteres comodín válidos:
- El comodín de porcentaje (%): cualquier cadena de cero o más caracteres.
- El comodín de subrayado (_): cualquier carácter individual.
- El comodín [lista de caracteres]: cualquier carácter individual dentro del conjunto especificado.
- El [carácter-carácter]: cualquier carácter individual dentro del rango especificado.
- El [^]: cualquier carácter individual que no se encuentre dentro de una lista o un rango.
Los caracteres comodines hacen que el operador LIKE
sea más flexible que los operadores de comparación de cadenas igual (=) y diferente de (<>).
Temas que te ayudaran en SQL Server:
- ¿Qué es SQL injection y Cómo funciona en los SQL Query?
- Cómo obtener las filas de una tabla que no están en otra tabla en SQL Server
- Cómo eliminar filas duplicadas en SQL Server, MySql y Oracle
- Cómo eliminar los espacios en blanco en SQL
- ¿Cómo agregar una columna a una tabla en SQL?
Carácter de escape
El carácter de escape indica al operador LIKE
que trate los caracteres comodines como caracteres normales. El carácter de escape no tiene valor predeterminado y debe evaluarse a un solo carácter.
El operador LIKE
devuelve TRUE
si la columna o expresión coincide con el patrón especificado.
Para negar el resultado del operador LIKE
, use el operador NOT
de la siguiente manera:
column | expression NOT LIKE pattern [ESCAPE escape_character]
Ejemplos del operador LIKE de SQL Server
Voy a consultar la siguiente tabla de clientes de la base de datos de muestra:
Ejemplos con el comodín % (porcentaje)
El siguiente ejemplo encuentra los clientes cuyo apellido comienza con la letra z:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE 'z%'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
1354 Alexandria Zamora
304 Jayme Zamora
110 Ollie Zimmerman
(3 row(s) affected)
El siguiente ejemplo devuelve los clientes cuyo apellido termina con la cadena er:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE '%er'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
1412 Adrien Hunter
62 Alica Hunter
619 Ana Palmer
525 Andreas Mayer
528 Angele Schroeder
1345 Arie Hunter
851 Arlena Buckner
.
.
.
(142 row(s) affected)
La siguiente declaración recupera los clientes cuyo apellido comienza con la letra t y termina con la letra s:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE 't%s'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
682 Arnita Thomas
904 Jana Thomas
1360 Latashia Travis
567 Sheila Travis
(4 row(s) affected)
Ejemplos con el comodín _ (guion bajo)
El guion bajo representa un solo carácter. Por ejemplo, la siguiente declaración devuelve a los clientes donde el segundo carácter es la letra u:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE '_u%'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
338 Abbey Pugh
1412 Adrien Hunter
527 Afton Juarez
442 Alane Munoz
62 Alica Hunter
683 Amparo Burks
1350 Annett Rush
1345 Arie Hunter
.
.
.
(109 row(s) affected)
El patrón _u%
- El primer carácter de subrayado (_) coincide con cualquier carácter individual.
- La segunda letra u coincide exactamente con la letra u
- El tercer carácter% coincide con cualquier secuencia de caracteres
Ejemplo con el comodín [lista de caracteres]
Los corchetes con una lista de caracteres, por ejemplo, [ABC] representa un solo carácter que debe ser uno de los caracteres especificados en la lista.
Por ejemplo, la siguiente consulta devuelve a los clientes donde el primer carácter del apellido es Y o Z:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE '[YZ]%'
ORDER BY
last_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
54 Fran Yang
250 Ivonne Yang
768 Yvone Yates
223 Scarlet Yates
498 Edda Young
543 Jasmin Young
1354 Alexandria Zamora
304 Jayme Zamora
110 Ollie Zimmerman
(9 row(s) affected)
Ejemplo con el comodín [carácter - carácter]
Los corchetes con un rango de caracteres, por ejemplo, [A-C] representan un solo carácter que debe estar dentro de un rango especificado.
Por ejemplo, la siguiente consulta busca a los clientes donde el primer carácter del apellido es la letra en el rango de A a la C:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE '[A-C]%'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
1224 Abram Copeland
1023 Adena Blake
1061 Alanna Barry
1219 Alden Atkinson
1135 Alisia Albert
.
.
.
(310 row(s) affected)
Ejemplo del comodín [^ Lista o rango de caracteres]
Los corchetes con un signo de intercalación (^) seguido de un rango, por ejemplo, [^ A-C] o una lista de caracteres, por ejemplo, [ABC] representan un solo carácter que no está en el rango o lista de caracteres especificados.
Por ejemplo, la siguiente consulta devuelve a los clientes donde el primer carácter del apellido no es la letra en el rango de A a la X:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
last_name LIKE '[^A-X]%'
ORDER BY
last_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
54 Fran Yang
250 Ivonne Yang
768 Yvone Yates
223 Scarlet Yates
498 Edda Young
543 Jasmin Young
1354 Alexandria Zamora
304 Jayme Zamora
110 Ollie Zimmerman
(9 row(s) affected)
Ejemplo del operador NOT LIKE
El siguiente ejemplo usa el operador NOT LIKE para encontrar clientes donde el primer carácter del primer nombre no es la letra A:
SELECT
customer_id, first_name, last_name
FROM
sales.customers
WHERE
first_name NOT LIKE 'A%'
ORDER BY
first_name;
Resultado:
customer_id first_name last_name
----------- ----------- -----------
174 Babara Ochoa
1108 Bao Wade
225 Barbera Riggs
1249 Barbra Dickerson
802 Barrett Sanders
.
.
.
(1331 row(s) affected)
En este tutorial, has aprendido a usar el operador LIKE de SQL Server para verificar si una cadena de caracteres coincide con un patrón especificado.
Envíame tus comentarios y sugerencias en el apartado de aquí abajo y ayúdame compartiendo el articulo en tus redes sociales.