Danh sách lựa chọn không phải lúc nào cũng được đánh giá cuối cùng vì ORDER BY có thể sử dụng các bí danh được xác định trong danh sách chọn, do đó chúng phải được thực thi sau đó. Ví dụ:
SELECT foo+bar foobar FROM table1 ORDER BY foobar
Tôi muốn nói rằng nói chung thứ tự thực hiện có thể là như thế này:
- TỪ
- WHERE
- NHÓM THEO
- CHỌN
- CÓ
- ĐẶT HÀNG BỞI
Các mệnh đề GROUP BY và WHERE có thể được hoán đổi mà không làm thay đổi kết quả, cũng như các mệnh đề HAVING và ORDER BY.
Trong thực tế, mọi thứ phức tạp hơn vì cơ sở dữ liệu có thể sắp xếp lại việc thực thi theo các kế hoạch thực thi khác nhau. Miễn là kết quả được giữ nguyên, nó được thực thi theo thứ tự nào.
Cũng lưu ý rằng nếu một chỉ mục được chọn cho mệnh đề ORDER BY thì các hàng có thể đã ở đúng thứ tự khi chúng được đọc từ đĩa. Trong trường hợp này, mệnh đề ORDER BY hoàn toàn không được thực thi.