Cómo usar regex en el servidor SQL con un operador similar

Cómo usar regex en el servidor SQL con un operador similar
Las expresiones regulares son una habilidad fundamental para cualquiera que quiera buscar y manipular cuerdas. Puede especificar expresiones precisas y complejas utilizando Regex para encontrar y reemplazar varias cadenas y patrones. En herramientas, como SSMS, puede especificar los patrones de regex en encontrar qué y reemplazar y reemplazar opciones.

En esta guía, sin embargo, analizaremos cómo ejecutar consultas de expresiones regulares en T-SQL usando los operadores similares y no como como los operadores.

Nota: Las expresiones regulares son un tema integral y no se pueden agotar en un solo tutorial. En su lugar, nos centraremos en el comando más y útil RegEx que puede usar en las operaciones de su base de datos diaria.

En T-SQL, podemos definir expresiones regulares utilizando el operador similar. El operador tomará la expresión coincidente y encontrará patrones coincidentes.

Hay varios tipos de expresiones regulares en SQL Server:

  1. Regex alfabético
  2. Regex numérico
  3. Regex de personajes especiales
  4. Regex sensible a mayúsculas
  5. Exclusión regex

Entendamos cómo podemos definir la expresión regular en SQL Server.

Ejemplos de expresiones regulares del servidor SQL

Entendamos cómo usar expresiones regulares en SQL Server utilizando ejemplos prácticos. En este artículo, utilizaremos la base de datos de muestras de salesDB.

Puede descargar la base de datos de muestra del siguiente recurso:

Ejemplo 1

La siguiente consulta de ejemplo utiliza una expresión regular para encontrar el nombre de los productos, comenzando con la letra L:

Usar salesDB;
Seleccione el nombre de los productos donde el nombre como '[l]%';

La consulta anterior debe encontrar los patrones de coincidencia y devolver el resultado como se muestra:

Ejemplo 2

Filtramos para los productos coincidentes en el ejemplo anterior, comenzando con la letra L. Para filtrar para la primera y segunda letra, podemos hacer lo siguiente:

Seleccione el nombre de los productos donde el nombre como '[l] [o]%';

La consulta debe devolver los nombres de los productos que comienzan con LO. El conjunto resultante se muestra como:

Ejemplo 3

Para filtrar por más de dos letras, especifique cada letra en sus soportes cuadrados como se muestra:

Seleccione el nombre de los productos donde el nombre como '[l] [o] [c] [k]%';

El conjunto resultante se muestra como:

Ejemplo 4

Supongamos que desea filtrar para productos que coincidan con una gama de cadenas específica. Por ejemplo, productos que comienzan con caracteres entre L - P:

Seleccione el nombre de los productos donde el nombre como '[l-p]%';

El conjunto resultante es como se muestra:

Ejemplo 5

También puede filtrar para múltiples condiciones de coincidencia en una sola consulta como se muestra:

Seleccione el nombre de los productos donde el nombre como '[l-p] [a-o]%';

Un conjunto de resultados de ejemplo es como:

Ejemplo 6

Supongamos que desea que los productos terminen con un carácter específico? En este caso, puede alterar la posición del porcentaje como se muestra:

Seleccione el nombre de los productos donde el nombre como '%[PE]';

Los resultados son como se muestra:

Ejemplo 7

Para filtrar para el inicio y el final resultante con los caracteres especificados, puede ejecutar la consulta como:

Seleccione * de los productos donde el nombre me gusta '[a]%[re]';

La consulta anterior debe devolver un conjunto de resultados como:

Ejemplo 8

¿Qué pasa si quieres excluir caracteres específicos de la consulta del filtro?? Puedes usar el ^ para excluir a los personajes.

Por ejemplo, para que todos los productos comiencen con todos los demás personajes aparte de A a M, podemos hacer lo siguiente:

Seleccione * de productos donde nombre como '[^a-m]%';

Los resultados deberían excluir la letra A a M.

Ejemplo 9

Supongamos que desea encontrar los productos donde el nombre contiene un número? Podemos ejecutar una consulta como se muestra:

Seleccione * de productos donde nombre como '%[0-9]';

El resultado debe ser como se muestra:

NOTA: Puede usar el operador no como el que no es el resultado de la expresión regular.

Conclusión

En este artículo, aprendió cómo usar expresiones regulares en SQL Server utilizando el operador similar. Esperamos que hayas encontrado este artículo útil. Echa un vistazo a más artículos de indicios de Linux para consejos e información, y puede obtener más información sobre Regex en los documentos de SQL Server.