HAVING klauzule je vyhodnocena před SELECT - takže server ještě o tomto aliasu neví.
-
Nejprve součin všech tabulek v
FROMje tvořena věta. -
WHEREklauzule je poté vyhodnocena, aby se odstranily řádky, které nesplňují podmínku vyhledávání. -
Dále jsou řádky seskupeny pomocí sloupců v
GROUP BYklauzule. -
Potom skupiny, které nesplňují
search_conditionvHAVINGklauzule jsou odstraněny. -
Dále výrazy v
SELECTseznam cílů příkazů se vyhodnotí. -
Pokud
DISTINCTklíčové slovo v klauzuli select, duplicitní řádky jsou nyní odstraněny. -
UNIONse bere po vyhodnocení každého dílčího výběru. -
Nakonec jsou výsledné řádky seřazeny podle sloupců zadaných v
ORDER BYklauzule. -
TOPklauzule je provedena.
Doufám, že to odpoví na vaši otázku. Také vysvětluje, proč alias funguje v ORDER BY klauzule.