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

pilih rownum dari gaji di mana rownum=3;

Oracle memberikan nilai ke ROWNUM secara berurutan saat baris dihasilkan oleh kueri - dengan demikian, baris pertama yang diambil mendapatkan ROWNUM=1, baris kedua yang diambil mendapatkan ROWNUM=2, baris ketiga yang diambil mendapatkan ROWNUM=3, dll. Pemberitahuan - untuk satu baris untuk ditugaskan ROWNUM=3 dua baris sebelumnya HARUS diambil. Dan inilah mengapa kueri Anda tidak mengembalikan baris. Anda meminta database untuk mengambil baris ketiga - tetapi baris 1 dan 2 tidak pernah diambil.

Untuk mendemonstrasikan, coba jalankan kueri berikut:

SELECT S.* FROM SALARY S;          -- Should return all rows
SELECT ROWNUM, S.* FROM SALARY S;  -- Should return all rows with ROWNUM prepended
SELECT ROWNUM, S.* FROM SALARY WHERE ROWNUM=3;  -- Should return no rows

Untuk mengatasi masalah Anda, coba yang berikut ini:

SELECT ROW_NUMBER FROM
  (SELECT ROWNUM AS ROW_NUMBER, S.* FROM SALARY S)
  WHERE ROW_NUMBER = 3;

Bagikan dan nikmati.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi Concat tidak berfungsi - jumlah argumen tidak valid

  2. Bagaimana mengatasi ORA-29913 dengan tabel eksternal

  3. Pilih Kumpulkan Massal ke Contoh Oracle

  4. Buat Pengguna Oracle Baru dan Berikan Hak Istimewa:Sintaks dan Contoh

  5. Dapatkan jumlah hari antara dua tanggal di Oracle, termasuk tanggal