La cláusula WHERE se emplea para especificar las filas que se desean recuperar del origen de datos.
WHERE <condicion_búsqueda> <condicion_búsqueda> ::= { [NOT]<predicado> |(<condicion_búsqueda>) } [{AND|OR} [NOT] {<predicado>|(<condicion_búsqueda>)}] [ ...n ]
En el resultado de la consulta sólo aparecerán las filas que cumplan que la condición de búsqueda sea TRUE, los valores NULL no se incluyen, por lo tanto, en las filas del resultado. La condición de búsqueda puede ser una condición simple o una condición compuesta por varias condiciones (predicados) unidas por operadores AND y OR, no hay límite en cuanto al número de predicados que se pueden incluir. En las condiciones compuestas se pueden utilizar paréntesis para delimitar predicados y se aconseja su uso cuando se incluyen operadores AND y OR en la misma condición de búsqueda.
En SQL tenemos 7 tipos de predicados, condiciones básicas de búsqueda:
Compara el valor de una expresión con el valor de otra. Para la comparación se pueden emplear = , <> , !=, < , <= , !<, > , >= ,!>
Sintaxis:
<expresion> {=|<>|!=|>|>=|!>|<|<=|!<} <expresion>
<expresion> Puede ser:
Ejemplo:
Listar los "buenos" vendedores (los que han rebasado su cuota).
SELECT numemp, nombre, ventas, cuota FROM empleados WHERE ventas > cuota
numemp | nombre | ventas | cuota |
---|---|---|---|
101 | Antonio Viguer | 30500,00 | 30000,00 |
102 | Alvaro Jaumes | 47400,00 | 35000,00 |
103 | Juan Rovira | 28600,00 | 27500,00 |
105 | Vicente Pantalla | 36800,00 | 35000,00 |
106 | Luis Antonio | 29900,00 | 27500,00 |
108 | Ana Bustamante | 36100,00 | 35000,00 |
109 | María Sunta | 39200,00 | 3000,00 |
Las columnas que aparecen en el WHERE no tienen por qué aparecer en la lista de selección, esta instrucción es igual de válida:
SELECT numemp, nombre FROM empleados WHERE ventas > cuota;
Hallar vendedores contratados antes de 1988.
SELECT numemp, nombre, contrato FROM empleados WHERE contrato < '01/01/1988';
numemp | nombre | contrato |
---|---|---|
101 | Antonio Viguer | 1986-10-20 |
102 | Alvaro Jaumes | 1986-12-10 |
103 | Juan Rovira | 1987-03-01 |
104 | José González | 1987-05-19 |
También podemos utilizar funciones, ésta es equivalente a la anterior:
SELECT numemp, nombre FROM empleados WHERE YEAR(contrato) < 1988;
La función YEAR(fecha) devuelve el año de una fecha.
Hallar oficinas cuyas ventas estén por debajo del 80% de su objetivo:
SELECT oficina FROM oficinas WHERE ventas < (.8 * objetivo);
Hallar las oficinas dirigidas por el empleado 108:
SELECT oficina FROM oficinas WHERE dir = 108;
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.