Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Urutan evaluasi klausa Oracle SQL

Daftar pilih tidak selalu dapat dievaluasi terakhir karena ORDER BY dapat menggunakan alias yang ditentukan dalam daftar pilih sehingga harus dijalankan setelahnya. Misalnya:

SELECT foo+bar foobar FROM table1 ORDER BY foobar

Saya akan mengatakan bahwa secara umum urutan eksekusi bisa seperti ini:

  • DARI
  • DIMANA
  • GROUP MENURUT
  • PILIH
  • PUNYA
  • PESAN OLEH

Klausa GROUP BY dan WHERE dapat ditukar tanpa mengubah hasilnya, seperti halnya HAVING dan ORDER BY.

Pada kenyataannya hal-hal yang lebih kompleks karena database dapat menyusun ulang eksekusi sesuai dengan rencana eksekusi yang berbeda. Selama hasilnya tetap sama, tidak masalah urutan eksekusinya.

Perhatikan juga bahwa jika indeks dipilih untuk klausa ORDER BY, baris-baris tersebut mungkin sudah berada dalam urutan yang benar ketika dibaca dari disk. Dalam hal ini klausa ORDER BY tidak benar-benar dieksekusi sama sekali.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Petunjuk langkah demi langkah untuk Instalasi Oracle Virtual Box

  2. Cara efisien untuk memperbarui semua baris dalam tabel

  3. dbms_metadata.get_ddl tidak berfungsi

  4. Cara mengetahui kapan tabel Oracle diperbarui terakhir kali

  5. Bagaimana cara menggunakan Alias ​​​​dalam klausa Where?