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

Oracle SQL memesan dalam masalah subquery!

Baik dcw dan Dems telah menyediakan pertanyaan alternatif yang sesuai. Saya hanya ingin memberikan penjelasan mengapa kueri Anda tidak berperilaku seperti yang Anda harapkan.

Jika Anda memiliki kueri yang menyertakan ROWNUM dan ORDER BY, Oracle menerapkan ROWNUM terlebih dahulu, lalu ORDER BY. Jadi pertanyaannya

SELECT *
  FROM emp
 WHERE rownum <= 5
 ORDER BY empno

mendapat 5 baris sewenang-wenang dari EMP meja dan mengurutkannya-- hampir pasti bukan yang dimaksudkan. Jika Anda ingin mendapatkan baris "N pertama" menggunakan ROWNUM, Anda perlu menyarangkan kueri. Kueri ini

SELECT *
  FROM (SELECT *
          FROM emp
         ORDER BY empno)
 WHERE rownum <= 5

mengurutkan baris dalam tabel EMP dan mengembalikan 5 baris pertama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengganti teks dalam Kolom BLOB

  2. Untuk apa Hibernate memetakan tipe data boolean saat menggunakan database Oracle secara default?

  3. 24 pertanyaan Wawancara Manajer Serentak yang Luar Biasa

  4. Bagaimana saya bisa mendapatkan akses awal ke pembaruan Oracle Java, sehingga saya dapat menguji RIA saya dan menghindari latihan kebakaran saat pembaruan ini dipublikasikan?

  5. Apakah substr atau LIKE lebih cepat di Oracle?