SQL EXISTS | |
|
SQL >
SQL Avanzato >
Exists
Nel paragrafo precedente, è stato utilizzato l’operatore IN per collegare la query interna e la query esterna a un’istruzione di sottoquery. IN non rappresenta l’unico modo per realizzare questa operazione. Possono infatti essere utilizzati molti operatori come: >, <, oppure =. EXISTS è un operatore speciale che verrà preso in esame in questo paragrafo. Mediante l’operatore EXISTS viene semplicemente verificato se la query interna restituisce ogni riga. Se ciò avviene, la query esterna viene elaborata. In caso contrario, la query esterna non viene eseguita e l’intera istruzione SQL non fornisce alcun risultato. La sintassi per EXISTS è: SELECT "nome_di_colonna_1"
FROM "nome_della_tabella_1" WHERE EXISTS (SELECT * FROM "nome_della_tabella_2" WHERE "condizionale"); Si noti che al posto di * è possibile selezionare una o più colonne della query interna. L’effetto sarà identico. Si proceda utilizzando le stesse tabelle di esempio: Tabella Store_Information
Tabella Geography
Viene rilasciata la seguente query SQL: SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS (SELECT * FROM Geography WHERE region_name = 'West'); Viene restituito il seguente risultato:
In un primo momento, questa operazione può creare qualche confusione in quanto nella sottoquery è inclusa la condizione [region_name = 'West'], eppure la query ha sommato i negozi relativi a tutte le regioni. Ma mediante un controllo più accurato, si può vedere che, poiché la sottoquery restituisce più di 0 righe, la condizione EXISTS è effettivamente vera e la condizione posizionata all’interno della query interna non influenza il modo in cui viene eseguita la query esterna.
Copyright © 2024 1keydata.com Tutti i diritti riservati |