Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Menghapus baris yang cocok dengan predikat. Jika tidak ada predikat yang disediakan, semua baris akan dihapus.
Pernyataan ini hanya didukung untuk tabel Delta Lake.
Sintaks
[ common_table_expression ]
DELETE FROM table_name [table_alias] [WHERE predicate]
Parameter
-
Ekspresi tabel umum (CTE) adalah satu atau beberapa kueri bernama yang dapat digunakan kembali beberapa kali dalam blok kueri utama untuk menghindari komputasi berulang atau untuk meningkatkan keterbacaan kueri berlapis yang kompleks.
-
Mengidentifikasi tabel yang sudah ada. Nama tidak boleh menyertakan spesifikasi temporal.
table_nametidak boleh menjadi tabel asing. -
Tentukan alias untuk tabel. Alias tidak boleh menyertakan daftar kolom.
-
Memfilter baris menurut predikat.
Predikat
WHEREmendukung subkueri, termasukIN,NOT IN,EXISTS,NOT EXISTS, serta subkueri skalar. Jenis subkueri berikut tidak didukung:- Subkueri bertumpuk, yaitu subkueri di dalam subkueri lain
- Subkueri
NOT INdi dalamOR, misalnya,a = 3 OR b NOT IN (SELECT c from t)
Dalam kebanyakan kasus, Anda dapat menulis ulang subkueri
NOT INdengan menggunakanNOT EXISTS. Kami menyarankan menggunakanNOT EXISTSkapan pun memungkinkan, karenaDELETEdengan sub-kueriNOT INbisa 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')