HAVING satsen utvärderas före SELECT - så servern känner ännu inte till det aliaset.
-
Först produkten av alla tabeller i
FROMklausul bildas. -
WHEREsatsen utvärderas sedan för att eliminera rader som inte uppfyller sökvillkoret. -
Därefter grupperas raderna med hjälp av kolumnerna i
GROUP BYklausul. -
Sedan grupper som inte uppfyller
search_conditioniHAVINGklausulen elimineras. -
Därefter uttrycken i
SELECTmållista för uttalanden utvärderas. -
Om
DISTINCTnyckelord som finns i select-satsen, är dubbletter av rader nu eliminerade. -
UNIONtas efter att varje delval har utvärderats. -
Slutligen sorteras de resulterande raderna enligt kolumnerna som anges i
ORDER BYklausul. -
TOPklausul exekveras.
Hoppas detta svarar på din fråga. Det förklarar också varför aliaset fungerar i ORDER BY klausul.