HAPUS DARI
Berlaku untuk: pemeriksaan Databricks SQL Databricks Runtime
Menghapus baris yang cocok dengan predikat. Ketika tidak ada predikat yang disediakan, menghapus semua baris.
Pernyataan ini hanya didukung untuk tabel Delta Lake.
Sintaks
DELETE FROM table_name [table_alias] [WHERE predicate]
Parameter
-
Mengidentifikasi tabel yang sudah ada. Nama tidak boleh menyertakan spesifikasi temporal.
table_name
tidak boleh tabel asing. -
Tentukan alias untuk tabel. Alias tidak boleh menyertakan daftar kolom.
-
Memfilter baris menurut predikat.
WHERE
Predikat mendukung subkueri, termasukIN
subkueri skalar , ,NOT IN
EXISTS
,NOT EXISTS
, dan skalar. Jenis subkueri berikut ini tidak didukung:- Subkueri berlapis, yaitu subkueri di dalam subkueri lain
NOT IN
subkueri di dalamOR
, misalnya,a = 3 OR b NOT IN (SELECT c from t)
Dalam kebanyakan kasus, Anda dapat menulis
NOT IN
ulang subkueri menggunakanNOT EXISTS
. Sebaiknya gunakanNOT EXISTS
jika memungkinkan, karenaDELETE
subkueriNOT IN
bisa lambat.
Contoh
> DELETE FROM events WHERE date < '2017-01-01'
> DELETE FROM all_events
WHERE session_time < (SELECT min(session_time) FROM good_events)
> DELETE FROM orders AS t1
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> DELETE FROM events
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')