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

Konversikan kueri Oracle SQL ke kueri Azure SQL

merge Oracle ini kueri hanya memiliki WHEN NOT MATCHED klausa dan tidak ada WHEN MATCHED , jadi pada dasarnya itu insert dan not exists :

insert into studies(study_id, study_date)
select x.*
from (values(@study_id, @study_date)) as x(study_id, study_date)
where not exists (select 1 from studies s1 where s1.study_id = x.study_id)

Ini secara logis setara dengan kueri Oracle asli.

Adapun pertanyaan awal Anda:SQL Server mendukung rasanya sendiri atau merge pernyataan , yang sintaksnya berbeda dari Oracle. Anda akan menulis ulang Oracle merge sebagai:

merge studies as s
using (values(@study_id, @study_date)) as x(study_id, study_date)
on (s.study_id = x.study_id)
when not matched 
    then insert (study_id, study_date) values(x.study_id, x.study_date)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh APEX_ZIP

  2. Kueri berparameter C# untuk Oracle - bug serius &berbahaya!

  3. Iterasi pada baris tabel kedua untuk mengembalikan hasil set

  4. SQL 'DAN' atau 'ATAU' didahulukan?

  5. Kesalahan Oracle:[:ke:operator tidak dikenal