sql >> データベース >  >> RDS >> Oracle

Oracle SQL クエリを Azure SQL クエリに変換する

    この Oracle merge クエリには 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 とは異なります。 Oracle merge を書き直します として:

    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. mysql、phpで年齢範囲を検索

    2. nから始まるmySQLのn番目ごとの行を選択する方法

    3. MySQLのデフォルトの順序はWHEREによって異なります

    4. SQLデータベースのテーブルの新しいレコードを監視します