Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
WHEREClausola
La WHERE clausola contiene condizioni che uniscono le tabelle o applicano i predicati alle colonne delle tabelle. Le tabelle possono essere unite internamente utilizzando la sintassi appropriata nella clausola o nella clausola. WHERE FROM I criteri di unione esterna devono essere specificati nella clausola. FROM
Sintassi
[ WHERE condition ]
condizione
Qualsiasi condizione di ricerca con un risultato booleano, ad esempio una condizione di join o un predicato su una colonna della tabella. I seguenti esempi sono condizioni di join valide:
sales.listid=listing.listid sales.listid<>listing.listid
I seguenti esempi sono condizioni valide sulle colonne delle tabelle:
catgroup like 'S%' venueseats between 20000 and 50000 eventname in('Jersey Boys','Spamalot') year=2008 length(catdesc)>25 date_part(month, caldate)=6
Le condizioni possono essere semplici o complesse; per le condizioni complesse, puoi utilizzare le parentesi per isolare le unità logiche. Nell'esempio seguente, la condizione di join è racchiusa tra parentesi.
where (category.catid=event.catid) and category.catid in(6,7,8)
Note per l'utilizzo
È possibile utilizzare gli alias nella WHERE clausola per fare riferimento a espressioni di elenchi selezionati.
Non è possibile limitare i risultati delle funzioni aggregate nella WHERE clausola; utilizzate la HAVING clausola per questo scopo.
Le colonne limitate nella WHERE clausola devono derivare dai riferimenti alla tabella contenuti nella clausola. FROM
Esempio
La seguente query utilizza una combinazione di diverse restrizioni relative alle WHERE clausole, tra cui una condizione di join per le EVENT tabelle SALES and, un predicato sulla colonna e due predicati sulla EVENTNAME colonna. STARTTIME
select eventname, starttime, pricepaid/qtysold as costperticket, qtysold from sales, event where sales.eventid = event.eventid and eventname='Hannah Montana' and date_part(quarter, starttime) in(1,2) and date_part(year, starttime) = 2008 order by 3 desc, 4, 2, 1 limit 10; eventname | starttime | costperticket | qtysold ----------------+---------------------+-------------------+--------- Hannah Montana | 2008-06-07 14:00:00 | 1706.00000000 | 2 Hannah Montana | 2008-05-01 19:00:00 | 1658.00000000 | 2 Hannah Montana | 2008-06-07 14:00:00 | 1479.00000000 | 1 Hannah Montana | 2008-06-07 14:00:00 | 1479.00000000 | 3 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 1 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 2 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 4 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 1 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 2 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 4 (10 rows)