De HAVING clausule wordt geëvalueerd vóór de SELECT - dus de server kent die alias nog niet.
-
Ten eerste, het product van alle tabellen in de
FROMclausule wordt gevormd. -
De
WHEREclausule wordt vervolgens geëvalueerd om rijen te elimineren die niet voldoen aan de zoekvoorwaarde. -
Vervolgens worden de rijen gegroepeerd met behulp van de kolommen in de
GROUP BYclausule. -
Dan, groepen die niet voldoen aan de
search_conditionin deHAVINGclausule worden geëlimineerd. -
Vervolgens de uitdrukkingen in de
SELECTlijst met doelen voor uitspraken worden geëvalueerd. -
Als de
DISTINCTtrefwoord aanwezig is in de select-clausule, dubbele rijen zijn nu geëlimineerd. -
De
UNIONwordt genomen nadat elke subselectie is geëvalueerd. -
Ten slotte worden de resulterende rijen gesorteerd volgens de kolommen die zijn gespecificeerd in de
ORDER BYclausule. -
TOPclausule wordt uitgevoerd.
Hoop dat dit je vraag beantwoordt. Het legt ook uit waarom de alias werkt in ORDER BY clausule.