WHERE

Índex

 

WHERE elemental en camps literals

Amb SELECT i FROM es presenten les dades de tots els registres. És el cas dels exemples precedents. Però molt sovint volem restringir el nombre de registres presentats, limitant-nos als que compleixen una determinada condició. Aquí entra en joc la clàusula WHERE.

En anglès comú, WHERE significa on; en el context SQL hem d'entendre "a condició que" o, si ho preferiu "on sigui veritat l'expressió que segueix". En el cas més simple, la condició és una igualtat, que s'indica amb el símbol '='. Així,

WHERE "Cognom" = 'Vendrell'

equival a dir "on sigui veritat que el cognom és igual a 'Vendrell'". En cas afirmatiu, es selecciona aquest registre; altrament no es selecciona.

Tornem a la taula "Socis", que presentem de nou:

captura

Associant SELECT, FROM i WHERE en una consultra construïm expressions com ara

SELECT "N_Soci", "Nom", "Cognom"
FROM "Socis"
WHERE "Cognom" = 'Vendrell'

I aquest és el resultat:

#

En els camps de text, és rellevant que s'hagi creat com 'varchar' o com 'varchar_ignorecase'; en el primer cas, caldrà fer la recerca respectant les majúscules i minúscules.

Cal notar que el camp que ha servit per a formular el WHERE no necessàriament s'ha de mostrar (SELECT). Suposem una taula que conté tots els alumnes d'una escola, amb un camp on s'indica quin curs fa cadascú. En una consulta que només presenti els alumnes d'un curs determinat, probablement no voldrem que s'indiqui el curs reiteradament al costat de cada nom d'alumne.

 

WHERE elemental en camps numèrics

Si el camp és numèric, el valor s'ha d'indicar sense cometes:

...WHERE "N_Soci"=34

#