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
FROM
si forma la clausola. -
Il
WHERE
La clausola viene quindi valutata per eliminare le righe che non soddisfano la condizione_ricerca. -
Successivamente, le righe vengono raggruppate utilizzando le colonne in
GROUP BY
clausola. -
Quindi, i gruppi che non soddisfano la
search_condition
nelHAVING
clausole sono eliminate. -
Successivamente, le espressioni in
SELECT
vengono valutati gli elenchi di obiettivi dell'istruzione. -
Se il
DISTINCT
parola chiave presente nella clausola select, le righe duplicate sono ora eliminate. -
Il
UNION
viene presa dopo che ogni sottoselezione è stata valutata. -
Infine, le righe risultanti vengono ordinate in base alle colonne specificate in
ORDER BY
clausola. -
TOP
la clausola viene eseguita.
Spero che questo risponda alla tua domanda. Inoltre, spiega perché l'alias funziona in ORDER BY
clausola.