Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thứ tự đánh giá mệnh đề Oracle SQL

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
  • ĐẶ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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tác động của việc xác định cột VARCHAR2 có độ dài lớn hơn

  2. Cách cài đặt cơ sở dữ liệu Oracle trên Windows

  3. Xóa tất cả các bản ghi ngoại trừ bản ghi gần đây nhất?

  4. Cách tạo một thủ tục bên trong một gói trong Oracle

  5. Có cách nào, trong ORACLE, để nối nhiều dòng hàng thành một dòng duy nhất, sử dụng hai bảng, trong đó các giá trị cuối cùng được phân tách bằng dấu phẩy không?