<expresion> [NOT] BETWEEN <expresion2> AND <expresion3>
Examina si el valor de la expresión de test está en el rango delimitado por los valores resultantes de expresion1 y expresion2, estos valores no tienen porqué estar ordenados en ANSI/ISO; expresion1 debe ser menor o igual a expresion2.
Hallar vendedores cuyas ventas estén entre 20.000 euros y 50.000.
SELECT numemp, nombre, ventas FROM empleados WHERE ventas BETWEEN 20000 AND 100000;
numemp | nombre | ventas |
---|---|---|
101 | Antonio Viguer | 30500,00 |
102 | Alvaro Jaumes | 47400,00 |
103 | Juan Rovira | 28600,00 |
105 | Vicente Pantalla | 36800,00 |
106 | Luis Antonio | 29900,00 |
108 | Ana Bustamante | 36100,00 |
109 | María Sunta | 39200,00 |
La instrucción anterior es equivalente a:
SELECT numemp, nombre, ventas FROM empleados WHERE ventas >= 20000 AND ventas <=100000;
Parece que con BETWEEN se lee mejor.
Observa que no hemos utilizado separadores de millares (100.000), porque se habría interpretado por una coma decimal.
Para practicar puedes realizar este Ejercicio Intervalos con BETWEEN.
<expresion> IN ( <exp_valor> [ ,...n ] )
Examina si el valor de la expresion es uno de los valores incluidos en la lista de valores indicados entre paréntesis. Se pueden expresar los valores mediante cualquier expresión, la única condición es que todas las exp_valor devuelvan el mismo tipo de datos.
Ejemplo:
Obtener los empleados que trabajan en las oficinas 11, 20 o 22:
SELECT oficina, numemp, nombre FROM empleados WHERE oficina IN (11,20,22);
oficina | numemp | nombre |
---|---|---|
11 | 106 | Luis Antonio |
22 | 107 | Jorge Gutiérrez |
11 | 109 | María Sunta |
Para practicar puedes realizar este Ejercicio Pertenencia a un conjunto con IN.
<expression> IS [NOT] NULL
Una condición de búsqueda puede ser TRUE, FALSE o NULL/UNKNOW, este último caso se produce cuando algún campo que interviene en la condición tiene valor NULL.
A veces es útil comprobar explícitamente los valores NULL en una condición de búsqueda ya que estas filas puede que queramos darles un tratamiento especial, para ello tenemos el predicado IS NULL.
Este test produce un valor TRUE o FALSE, por lo que se podrá combinar con otras condiciones. El valor NULL no es en sí un valor por eso no lo podemos utilizar en una igualdad.
SELECT numemp,nombre FROM empleados WHERE oficina = NULL;
Esta instrucción no da error pero no obtiene lo que en principio parece que quiere obtener. No obtenemos los empleados cuya oficina sea un valor nulo (es decir los empleados que no tienen oficina), no obtenemos nada, en cambio los obtendremos utilizando el test de valor nulo:
SELECT numemp,nombre, oficina FROM empleados WHERE oficina IS NULL;
Resultado:
numemp | nombre | oficina |
---|---|---|
110 | Juan Victor | NULL |
Juan Victor es el único empleado que no tiene oficina asignada.
Listar los vendedores asignados a alguna oficina.
SELECT numemp, nombre, oficina FROM empleados WHERE oficina IS NOT NULL;
numemp | nombre | oficina |
---|---|---|
101 | Antonio Viguer | 12 |
102 | Alvaro Jaumes | 21 |
103 | Juan Rovira | 12 |
104 | José González | 12 |
105 | Vicente Pantalla | 13 |
106 | Luis Antonio | 11 |
107 | Jorge Gutiérrez | 22 |
108 | Ana Bustamante | 21 |
109 | María Sunta | 11 |
Para practicar puedes realizar este Ejercicio Test de valor nulo.
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.