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

ORA-00907 Masalah tanda kurung kanan tidak ada - pilih dengan urutan dengan kueri penyisipan di dalam

Kedua jawaban saat ini mengabaikan fakta bahwa menggunakan order by dan rownum dalam permintaan yang sama secara inheren berbahaya. Sama sekali tidak ada jaminan bahwa Anda akan mendapatkan data yang Anda inginkan. Jika Anda ingin baris pertama dari kueri terurut, Anda harus gunakan sub-kueri:

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
           from fir_tabl
          where id = 1
          order by created_on desc )
 where rownum = 1
       ;

Anda juga dapat menggunakan fungsi seperti rank untuk memesan data dalam metode yang Anda inginkan, meskipun jika Anda memiliki dua created_on tanggal yang identik Anda akan mendapatkan 2 nilai dengan rnk = 1 .

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
              , rank() over ( order by created_on desc ) as rnk
           from fir_tabl
          where id = 1)
 where rnk = 1
       ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pivot Beberapa Tabel dengan Nilai Default

  2. Konversi REGEXP_LIKE di SQL Server T-SQL

  3. Tabel pivot dengan nilai non-kardinal

  4. PLSQL JDBC:Bagaimana cara mendapatkan ID baris terakhir?

  5. perlu mengelompokkan catatan berdasarkan pembalikan yang cocok