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.

<Pagina principal>


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.

Nivel de parentesis en las clausulas WHERE