En este blog, discutiremos cómo filtrar en SQL. Explicaremos y mostraremos algunos ejemplos utilizando condiciones de filtrado como IN, NOT IN, LIKE y NOT LIKE .
Estas condiciones de filtrado se utilizan para filtrar la salida de los datos. En lugar de seleccionarlos usando varias líneas de comandos, le resultará más fácil acceder a los datos.
Tabla de contenido
Uso de los operadores IN y NOT IN para filtrar datos en SQL
En este ejemplo, obtendremos los datos de los ID 1, 5 o 7. La mayoría de las personas usarían condiciones OR .

Si desea obtener los datos de más ID, deberá escribir varias condiciones OR. Sin embargo, puede usar el operador IN para obtener los datos que desea en lugar de usar las condiciones OR muchas veces.

El uso de esta condición de filtrado nos dará el mismo resultado, que son los datos de los ID 1, 5 o 7. Por el contrario, si desea extraer los datos de todos excepto de los ID 1, 5 y 7, lo mejor sería probablemente use la condición OR y <> (operador NO IGUAL).

En lugar de escribir comandos largos, podemos usar el operador NOT IN .

Con esta condición de filtrado, extraerá los datos excepto los ID 1, 5 y 7.
El uso de estas condiciones le ahorrará mucho tiempo y, al mismo tiempo, es una manera mucho mejor de escribir en lugar de usar múltiples condiciones OR .
Uso de los operadores LIKE y NOT LIKE para filtrar datos en SQL
LIKE y NOT LIKE son similares a los operadores IN y NOT IN. En lugar de extraer los datos en sí, obtendrá la parte de una cadena. Tenga en cuenta que puede usar comodines o caracteres especiales como porcentaje (%) y guión bajo (_).
El % significa que coincidirá con todos los registros con la cadena dada. Si hacemos coincidir 86 y %, los primeros dos dígitos deberían ser 86. Entonces, encontrará cualquier valor que comience con 86.
Pero si colocamos % a ambos lados de 86, puede provenir de cualquier lugar. Puede venir desde el principio, el final o el medio. Por lo tanto, encontrará cualquier valor que tenga 86 al principio, en el medio o al final.
Por otro lado, _ coincide solo con 1 carácter. Si usa 86 y _ (86_), buscará cualquier valor que tenga 86 en la primera y segunda posición, como 860, 861, 862, etc. Si usa _ y 86 (_86), buscará cualquier valor con 86 en las posiciones 2 y 3.

En este ejemplo, usaremos el operador LIKE para obtener los datos que tienen la cadena Mark . Simplemente necesitamos poner Mark entre % para tener una salida que contenga Mark .

Del mismo modo, si no queremos extraer los datos que contiene Mark , podemos usar el operador NOT LIKE . Luego ponga Mark entre %.

Esta vez, la salida no contendrá Mark .
Uso de las condiciones de filtrado de SQL en SSMS
Primero, abriremos nuestro SSMS (SQL Server Management Studio).

A continuación, cargaremos la tabla que usaremos. Tenga en cuenta que la base de datos que estamos usando es adventureworks2012, que se puede encontrar en el sitio web de documentación de Microsoft .

Luego, haga clic en Ejecutar .

Después de eso, verá el resultado en la pestaña Resultados.

Luego, filtraremos la salida según PersonType . Usaremos el comando select distinto . Resaltaremos el comando y haremos clic en Ejecutar .

Luego verá la salida que muestra PersonType .

A continuación, extraeremos los registros de PersonType IN , SP o SC . Para este, usaremos la condición OR . Resaltaremos el comando y haremos clic en ejecutar .

Luego verá que el número de filas es 19,254.

Sin embargo, en lugar de usar la condición OR , usaremos el operador IN . Entonces, escribiremos el comando y lo resaltaremos. Luego haga clic en ejecutar .

Esto nos dará el mismo número de filas, que es 19254 .

Si queremos extraer todos los datos excepto IN , SP y SC , usaremos el operador NOT IN . Así que escribamos el comando y resaltémoslo. Luego haga clic en ejecutar .

Esto nos dará todos los datos excepto los que son de IN , SP y SC .

A continuación, usaremos el operador LIKE para extraer los datos que contienen a Rob de la columna FirstName . Usemos el comando, resáltelo y haga clic en Ejecutar .

Como resultado, veremos que la salida ahora contiene a Rob en la columna FirstName . Como usamos el %, mostrará todos los datos que tienen la cadena Rob .

Finalmente, usaremos el operador NOT LIKE . En este ejemplo, queremos extraer los datos que no contienen Rob . Así que escribiremos el código, lo resaltaremos y luego haremos clic en Ejecutar.

Esto nos dará la salida que no muestra ningún registro que contenga a Rob en la columna FirstName .

Conclusión
Para resumir, hemos discutido cómo filtrar en SQL usando los operadores IN, NOT IN, LIKE y NOT LIKE. Has aprendido su uso y sus diferencias, y en qué situación puedes usarlos.
Estos operadores son más eficientes que usar la condición OR . Puede usar estos operadores para filtrar y extraer los datos que desee de su base de datos en lugar de usar comandos más largos, así que asegúrese de utilizar estas condiciones de filtrado correctamente.
Mis mejores deseos,
Hafiz