Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chuyển đổi truy vấn SQL Oracle sang truy vấn Azure SQL

Oracle merge này truy vấn chỉ có WHEN NOT MATCHED và không có mệnh đề WHEN MATCHED , về cơ bản đó là insertnot 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)

Điều này về mặt logic tương đương với truy vấn Oracle ban đầu.

Đối với câu hỏi ban đầu của bạn:SQL Server có hỗ trợ hương vị riêng của nó hoặc merge tuyên bố , có cú pháp khác với Oracle. Bạn sẽ viết lại merge của Oracle như:

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. Python 3.3 - Kết nối với cơ sở dữ liệu Oracle

  2. Sử dụng DBMS_LOB.SUBSTR trên BLOB dẫn đến ORA-06502

  3. Cách lấy ngày hiện tại trong Oracle

  4. Tách hàng thành cột trong oracle

  5. Oracle TNS tên không hiển thị khi thêm kết nối mới vào SQL Developer