ODSTRANIT Z
Platí pro: , kontrola Databricks SQL Databricks Runtime
Odstraní řádky, které odpovídají predikátu. Pokud není zadaný žádný predikát, odstraní všechny řádky.
Tento příkaz se podporuje pouze pro tabulky Delta Lake.
Syntaxe
DELETE FROM table_name [table_alias] [WHERE predicate]
Parametry
-
Identifikuje existující tabulku. Název nesmí obsahovat dočasnou specifikaci.
table_name
nesmí být cizí tabulka. -
Definujte alias pro tabulku. Alias nesmí obsahovat seznam sloupců.
-
Filtrovat řádky podle predikátu.
Predikát
WHERE
podporuje poddotazy, včetněIN
poddotazů ,NOT IN
EXISTS
,NOT EXISTS
a skalárních poddotazů. Následující typy poddotazů nejsou podporovány:- Vnořené poddotazy, to znamená poddotaz uvnitř jiného poddotaz
NOT IN
poddotaz uvnitř ,OR
napříklada = 3 OR b NOT IN (SELECT c from t)
Ve většině případů můžete poddotazy přepsat
NOT IN
pomocíNOT EXISTS
. Pokud je to možné, doporučujeme použítNOT EXISTS
poddotaz, protožeDELETE
poddotazyNOT IN
můžou být pomalé.
Příklady
> 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')