Unidad 3. Consultas simples (XII)


Pertenencia a un intervalo. BETWEEN

<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.

Test de pertenencia a conjunto IN

<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.

Test de valor nulo IS NULL

<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.

Febrero-2010
Pág. 3.12

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.