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

Hapus dengan Gabung Kiri di Oracle 10g

Solusi Shannon adalah caranya:gunakan operator NOT IN (atau NOT EXISTS).

Namun Anda dapat menghapus atau memperbarui gabungan di Oracle, tetapi sintaksnya tidak sama dengan MS SQL Server:

SQL> DELETE FROM (SELECT grp.*
  2                  FROM grp
  3                  LEFT JOIN my_data ON grp.id1 = my_data.id1
  4                                   AND grp.id2 = my_data.id2
  5                                   AND grp.id3 = my_data.id3
  6                                   AND grp.id4 = my_data.id4
  7                 WHERE my_data.id1 IS NULL);

2 rows deleted

Selain itu, Oracle hanya akan mengizinkan Anda memperbarui gabungan jika tidak ada ambiguitas baris dasar mana yang akan diakses oleh pernyataan. Secara khusus, Oracle tidak akan mengambil risiko pembaruan atau penghapusan (pernyataan akan gagal) jika ada kemungkinan bahwa baris akan muncul dua kali dalam gabungan. Dalam hal ini, penghapusan hanya akan berfungsi jika ada batasan UNIK pada my_data(id1, id2, id3, id4).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengatur OTA di R12 dan 11i

  2. Kunci Unik di Oracle dengan Contoh

  3. Bagaimana Menangani Kolom Tabel yang Dinamai Dengan Kata Kunci Sql yang Dipesan?

  4. if (pilih count(kolom) dari tabel)> 0 maka

  5. Menginstal Formulir dan Laporan Oracle 11g Rilis 2