Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Konwertuj zapytanie Oracle SQL na zapytanie Azure SQL

To merge Oracle zapytanie ma tylko WHEN NOT MATCHED klauzula i brak WHEN MATCHED , więc w zasadzie jest to insert i 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)

Jest to logicznie równoważne oryginalnemu zapytaniu Oracle.

Jeśli chodzi o Twoje pierwotne pytanie:SQL Server obsługuje swój własny smak lub merge oświadczenie , którego składnia jest inna niż Oracle. Przepisałbyś Oracle merge jako:

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. Jak za pomocą zapytania uzyskać listę miesięcy pomiędzy 2 podanymi datami?

  2. Czy można użyć sql%rowcount dla SELECT?

  3. Jaki jest preferowany sposób przechowywania wielu wartości prawda/fałsz podczas projektowania baz danych?

  4. Jaki jest najlepszy sposób na uniknięcie znaków nieformatowych w to_char Oracle?

  5. W źródle SSIS OLE DB brakuje losowo wierszy ze źródła danych Oracle