Výběrový seznam nemůže být vždy vyhodnocen jako poslední, protože ORDER BY může používat aliasy, které jsou definovány ve výběrovém seznamu, takže musí být provedeny později. Například:
SELECT foo+bar foobar FROM table1 ORDER BY foobar
Řekl bych, že obecně by pořadí provádění mohlo být něco takového:
- OD
- KDE
- GROUP BY
- VYBRAT
- MÍT
- OBJEDNEJTE PODLE
Klauzule GROUP BY a WHERE lze zaměnit beze změny výsledku, stejně jako klauzule HAVING a ORDER BY.
Ve skutečnosti jsou věci složitější, protože databáze může změnit pořadí provádění podle různých plánů provádění. Dokud výsledek zůstane stejný, nezáleží na tom, v jakém pořadí se provede.
Všimněte si také, že pokud je pro klauzuli ORDER BY zvolen index, řádky mohou být již při čtení z disku ve správném pořadí. V tomto případě se klauzule ORDER BY ve skutečnosti vůbec neprovede.