Oracle
 sql >> база данни >  >> RDS >> Oracle

Преобразувайте Oracle SQL заявка в Azure SQL заявка

Това merge на Oracle заявката има само WHEN NOT MATCHED клауза и без WHEN MATCHED , така че основно това е insert и 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)

Това е логически еквивалентно на оригиналната заявка на Oracle.

Що се отнася до първоначалния ви въпрос:SQL Server поддържа свой собствен вариант или merge изявление , чийто синтаксис е различен от Oracle. Вие бихте пренаписали merge на Oracle като:

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. Намерете цифров подтип (smallint, int и т.н.) в Oracle

  2. Как да стартирам група на SQL заявка по проблем?

  3. Трябва ли да посочим не null за първичен ключ? Oracle/SQL

  4. Oracle JDBC:underflow в двойно

  5. Вземете общ брой редове в ORACLE и след това получете само 4 резултата