Vallistan kan inte alltid utvärderas sist eftersom ORDER BY kan använda alias som är definierade i urvalslistan så att de måste exekveras i efterhand. Till exempel:
SELECT foo+bar foobar FROM table1 ORDER BY foobar
Jag skulle säga att i allmänhet kan exekveringsordningen vara ungefär så här:
- FRÅN
- VAR
- GRUPPER EFTER
- VÄLJ
- HA
- BESTÄLL AV
GROUP BY- och WHERE-satserna kan bytas ut utan att resultatet ändras, liksom HAVING och ORDER BY.
I verkligheten är saker och ting mer komplexa eftersom databasen kan ordna om exekveringen enligt olika exekveringsplaner. Så länge resultatet förblir detsamma spelar det ingen roll i vilken ordning det exekveras.
Observera också att om ett index väljs för ORDER BY-satsen kan raderna redan vara i rätt ordning när de läses från disken. I det här fallet exekveras inte ORDER BY-satsen alls.