Articles

SQLShack (Español)

Posted by admin

Este artículo explora los comandos RegEx de T-SQL en SQL Server para realizar búsquedas de datos utilizando varias condiciones.

Introducción

almacenamos datos en múltiples formatos o tipos de datos en tablas de SQL Server. Supongamos que tiene una columna de datos que contiene datos de cadena en formato alfanumérico. Usamos como operador lógico para buscar caracteres específicos en la cadena y recuperar el resultado., Por ejemplo, en la tabla Employee, queremos filtrar los resultados y obtener el único empleado cuyo nombre comienza con el carácter A.

utilizamos expresiones regulares para definir patrones específicos en T-SQL en un operador LIKE y filtrar los resultados en función de condiciones específicas. También llamamos a estas expresiones regulares como funciones RegEx de T-SQL. En este artículo, usaremos el término funciones RegEx de T-SQL para Expresiones Regulares.,

Podemos tener varios tipos de expresiones regulares:

  • RegEx alfabética
  • Regex numérica
  • RegEx sensible a mayúsculas y minúsculas
  • caracteres especiales RegEx
  • RegEx para excluir Caracteres

prerrequisito

en este artículo, usaremos la base de datos de muestra de AdventureWorks., Execute the following query, and we get all product descriptions:

1
2

SELECT
FROM ..;

Let’s explore T-SQL RegEx in the following examples.,

ejemplo 1: filtrar resultados para la descripción que comienza con el carácter a o L

supongamos que queremos obtener la descripción del producto que comienza con el carácter A o L. Podemos usar format % en la función Like.

Ejecute la siguiente consulta y observar la salida contiene filas con el primer carácter de Una o de L:

1
2
3

SELECCIONAR
DE ..,
donde me gusta ‘%’

Ejemplo 2: filtrar los resultados para la descripción con el primer carácter A y el segundo carácter l

en el ejemplo anterior, filtramos los resultados para el carácter inicial a, o L. supongamos que queremos caracteres iniciales de descripciones al. Podemos usar T-SQL RegEx % en el operador Like.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the output, you can we get only records with first character A and second characters L.

We can specify multiple characters as well to filter records., The following query gives results for starting characters together:

1
2
3

SELECT
FROM ..,
donde me gusta ‘%’

Ejemplo 3: filtrar los resultados para la descripción y el carácter inicial entre a y d

en el ejemplo anterior, especificamos un carácter inicial particular para filtrar los resultados. Podemos especificar el rango de caracteres usando % functions.,

The following query gives results for description starting character from A and D:

1
2
3

SELECT
FROM ..
where like ‘%’

Similarly, we can specify multiple conditions for each character., Por ejemplo, la siguiente consulta las siguientes búsquedas:

  • El primer carácter debe ser de a y D alfabetos
  • El segundo personaje debe ser de F y L alfabeto
1
2
3

SELECCIONAR
DE ..,
donde like ‘%’

En la salida, se puede ver que tanto el conjunto de resultados satisface las dos condiciones.

Ejemplo 4: filtrar los resultados para la descripción y el carácter final entre a y d

en los ejemplos anteriores, filtramos los datos para los caracteres iniciales. Es posible que también queramos filtrar el carácter de posición final.

en los ejemplos anteriores, observe la posición del operador percentage ( % ). Especificamos un carácter porcentual al final de los caracteres de búsqueda.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the following query, we changed the position of percentage character at the beginning on search character., Busca los caracteres con la siguiente condición:

  • carácter de Final debe ser de G y S
1
2
3

SELECCIONAR
DE ..
donde like ‘%’

En la salida, se obtiene el carácter que satisface nuestra condición de búsqueda.,

ejemplo 5: filtrar resultados para la descripción Letras de inicio AF y carácter final entre s

vamos a hacerlo un poco complejo., Queremos buscar en el uso de las siguientes condiciones:

  • a Partir carácter debe ser Una (primera) y F (segundo)
  • carácter de Final debe ser S

Ejecute la siguiente consulta, y en la salida, podemos ver que satisface nuestras necesidades:

1
2
3

SELECCIONAR
DE ..,
donde me gusta ‘%’

ejemplo 6: filtrar los resultados para las letras iniciales de descripción excluyendo A a t

en el siguiente ejemplo, no queremos el primer carácter de las filas de salida de A A T. podemos excluir caracteres usando formato en el operador LIKE.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the output, we do not have any first characters from A to T.,r registros con las siguientes condiciones:

  • El primer carácter debe ser de R y S de caracteres
  • podemos tener cualquier combinación después de que el primer carácter – %
  • se requiere el caracter P –
  • debe ser seguido por un o –
  • puede tener cualquier otro carácter, después de la anterior condición- %
1
2
3

SELECCIONAR
DE .,.
donde como ‘%%’

ejemplo 8: búsqueda sensible a mayúsculas y minúsculas usando funciones RegEx de T-SQL

por defecto, no obtenemos resultados sensibles a mayúsculas y minúsculas. Por ejemplo, las siguientes consultas devuelven el mismo conjunto de resultados:

podemos realizar búsquedas sensibles a mayúsculas y minúsculas utilizando las siguientes dos formas:

  1. ajuste de intercalación de base de datos: cada base de datos en SQL Server tiene una intercalación., Haga clic derecho en la base de datos y en la página de propiedades, puede ver la intercalación

    tenemos SQL_Latin1_General_CP1_CI_AS realiza un comportamiento insensible a mayúsculas y minúsculas para la base de datos. Podemos cambiar esta intercalación a intercalación sensible a mayúsculas y minúsculas. No es una solución sencilla. Podría crear problemas para sus consultas. No es una forma recomendada a menos que requiera explícitamente la intercalación sensible a mayúsculas y minúsculas.

    Podemos usar la intercalación de columnas con funciones RegEx de T-SQL para realizar búsquedas sensibles a mayúsculas y minúsculas.,

    1
    2
    3
    4
    5
    6
    7

    Crear tabla de Caracteres
    (Alfabeto char(1)
    )
    Ir
    Insertar en Personajes de valores (‘A’)
    Insertar en Personajes de valores (‘a’)
    Ir

    En la mesa tenemos la letra en mayúsculas y minúsculas., If we run the following select statement, it returns both uppercase and lowercase:

    1
    2

    SELECT * from Characters
    where Alphabet like ‘%’

    Suppose we want to filter the uppercase letter in the result., We can use column collation as per the following query:

    1
    2

    select * from Characters
    where Alphabet COLLATE Latin1_General_BIN like ‘%’

    It returns uppercase letter A in the output.,e119a2″>

    del mismo modo, la consulta siguiente devuelve letra minúscula en la salida:

    1
    2

    select * from Caracteres
    donde Alfabeto INTERCALAR Latin1_General_BIN like ‘%’

  2. podemos utilizar T-SQL RegEx función para buscar caracteres en mayúscula y minúscula en la salida.,

    queremos que la siguiente salida:

    • El primer carácter debe ser de carácter en mayúscula C
    • El segundo carácter debe ser de carácter en minúscula h
    • Resto de los personajes puede ser en cualquier caso de la letra
    1
    2
    3

    SELECCIONAR
    DE ..,
    where COLLATE Latin1_General_BIN like ‘%’

ejemplo 9: Use T-SQL Regex para buscar filas de texto que contengan un número

podemos encontrar una fila que contenga el número también en el texto. Por ejemplo, queremos filtrar los resultados con filas que contengan el número 0 al 9 al principio.

ejemplo 10: Use T-SQL Regex para encontrar ID de correo electrónico válidos

exploremos un escenario práctico de la función RegEX., Tenemos una tabla de clientes, y contiene la dirección de correo electrónico del cliente. Queremos identificar la dirección de correo electrónico válida a partir de los datos del usuario. A veces, los usuarios cometen errores tipográficos e ingresan @@ en lugar del carácter@.

primero, cree la tabla de muestra e inserte alguna dirección de correo electrónico en diferentes formatos.

ejecute la siguiente instrucción select con la función RegEx de T-SQL y eliminará las direcciones de correo electrónico no válidas.,

1
2

Select * from TSQLREGEX where email
LIKE ‘%%%’

We do not have following invalid email address in the list.

  • ABC@@gmail.com
  • ABC.DFG.LKF#@gmail.,com

conclusión

en este artículo, exploramos las funciones RegEx de T-SQL para realizar una búsqueda utilizando varias condiciones. Usted debe ser consciente de estos para buscar en función de los requisitos específicos.,

  • Autor
  • publicaciones recientes
como formador certificado por MCSA y Microsoft Certified en Gurgaon, India, con 13 años de experiencia, Rajendra trabaja para una variedad de grandes empresas que se centran en la optimización del rendimiento, el monitoreo, la alta disponibilidad y las estrategias e implementación de recuperación ante desastres., Es autor de cientos de artículos autorizados sobre SQL Server, Azure, MySQL, Linux, Power BI, performance tuning, AWS/Amazon RDS, Git y tecnologías relacionadas que han sido vistos por más de 10 millones de lectores hasta la fecha. es el creador de una de las mayores colecciones gratuitas en línea de artículos sobre un solo tema, con su serie de 50 partes en grupos SQL Server Always on Availability. Basado en su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios incluyendo el prestigioso «mejor autor del año» continuamente en 2020 y 2021 en SQLShack.,Raj siempre está interesado en nuevos desafíos, por lo que si necesita ayuda de consultoría sobre cualquier tema cubierto en sus escritos, puede ser contactado en rajendra.gupta16 @ gmail.,com
Ver todos los mensajes por Rajendra Gupta

Últimas entradas por Rajendra Gupta (ver todos)
  • tiempo de espera de Sesión en SQL Server Siempre En Grupos de Disponibilidad – febrero 8, 2021
  • la Realización de menor y mayor actualización de la versión para AWS RDS SQL Server – 29 de enero de 2021
  • la Implementación de AWS RDS para PostgreSQL instancias – 27 de enero de 2021

Leave A Comment