Il HAVING La clausola viene valutata prima di SELECT - quindi il server non conosce ancora quell'alias.
-
Innanzitutto, il prodotto di tutte le tabelle nel
FROMsi forma la clausola. -
Il
WHERELa clausola viene quindi valutata per eliminare le righe che non soddisfano la condizione_ricerca. -
Successivamente, le righe vengono raggruppate utilizzando le colonne in
GROUP BYclausola. -
Quindi, i gruppi che non soddisfano la
search_conditionnelHAVINGclausole sono eliminate. -
Successivamente, le espressioni in
SELECTvengono valutati gli elenchi di obiettivi dell'istruzione. -
Se il
DISTINCTparola chiave presente nella clausola select, le righe duplicate sono ora eliminate. -
Il
UNIONviene presa dopo che ogni sottoselezione è stata valutata. -
Infine, le righe risultanti vengono ordinate in base alle colonne specificate in
ORDER BYclausola. -
TOPla clausola viene eseguita.
Spero che questo risponda alla tua domanda. Inoltre, spiega perché l'alias funziona in ORDER BY clausola.