Filtros de selección
Para solo listar aquellos registros que cumplan una determinada condición se utiliza la clausula WHERE. La sintaxis es WHERE (Condición a cumplir entre parentesis), podemos utilizar los operadores lógicoas AND, OR y NOT. Los operadodes de comparación válidos son los siguientes:
| > | Mayor que... |
| < | Menor que... |
| <> | Distinto que... |
| >= | Mayor o igual que... |
| <= | Menor o igual que... |
| = | Igual que... |
| ! | Niega la condicion (Not) |
| Like | Como ... |
| Between | Entre ... y ... |
| In | Lista de valores. |
Ejemplos:
La forma de indicar los valores es la siguiente, para texto se encierra el valor entre comillas, para números se pone el número tal cual y para fechas se encierran entre almoadillas.
Podemos utilizar caracteres comodín para las comparaciones con el predicado LIKE. Los caracteres comodín son los siguientes :
| * | Equivale a multiples caracteres. |
| ? | Equivale a un solo caracter. |
| # | Equivale a un dígito |
| [a-b] | Lista de caracteres |
Tomando como ejemplo la siguiente consulta vamos a ver varios ejemplos de la clausula WHERE.
SELECT Articulos.CodArt, Articulos.Desc1, Articulos.Desc2, Articulos.PVP FROM Articulos
| WHERE (((Articulos.Descripción)>"K")); | Todos los articulos que empiecen de la "L" en adelante. |
| WHERE (((Articulos.PVP)<=25000)); | Todos los artículos con un valor igual o inferior a 25.000 pts. |
| WHERE (((Articulos.F_Alta) >= #1/1/97# ) AND ((Articulos.F_Alta) < #1/1/99# )); | Todos los articulos dados de alta entre el 01/01/1998 y 31/12/1998 |
| WHERE (((Articulos.DescripcionArticulo) Like "*CD*")); | Cualquier artículo que su descripción contenga la palabra CD. |
| WHERE (((Articulos.DescripcionArticulo) Like "CV###?97")); | Cualquier artículo cuyo nombre empiece por CV, tenga a continuación 3 dígitos numéricos, luego cualquier caracter y acabe en 97 (CV012L97 o CV0125Ñ97) |
| WHERE (((Mid([Articulos].[DescripcionArticulo],1,1)) Like "[A-C]")); | Todos los articulos que empiecen por A, B o C |
| WHERE (((Articulos.Descripcion) Like "[A-C]*")) | Todos los articulos que empiecen por A, B o C |
| WHERE (((Articulos.CodigoArticulo) Between 1 AND 29999)); | Todos los artículos cuyos códigos estén entre 1 y 29999. |
| WHERE (((Articulos.DescripcionArticulo) Like "*[X-Y]*")) | Todos los articulos que contengan las letras X,Y o Z en su descripción. |
| WHERE (((Articulos.CodigoFamilia) In ('1000','2000','3000'))) | Solo listará los artículos que pertenezcan a las familias 1000, 2000 y 3000. |
Como habras podido observar los parentesis llevan el siguiente orden.
