Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime
Tar bort de rader som matchar ett predikat. När inget predikat anges tar alla rader bort.
Det här påståendet stöds endast för Delta Lake-tabeller.
Syntax
[ common_table_expression ]
DELETE FROM table_name [table_alias] [WHERE predicate]
Parametrar
-
Vanliga tabelluttryck (CTE) är en eller flera namngivna frågor som kan återanvändas flera gånger inom huvudfrågeblocket för att undvika upprepade beräkningar eller för att förbättra läsbarheten för komplexa, kapslade frågor.
-
Identifierar en befintlig tabell. Namnet får inte innehålla någon temporal specifikation.
table_namefår inte vara en utländsk tabell. -
Definiera ett alias för tabellen. Aliaset får inte innehålla en kolumnlista.
-
Filtrera rader efter predikat.
Predikatet
WHEREstöder underfrågor, inklusiveIN,NOT IN,EXISTS,NOT EXISTSoch skalära underfrågor. Följande typer av underfrågor stöds inte:- Kapslade underfrågor, d.s.a. en underfråga i en annan underfråga
-
NOT INunderfråga i enOR, till exempela = 3 OR b NOT IN (SELECT c from t)
I de flesta fall kan du skriva om
NOT INunderfrågor med hjälp avNOT EXISTS. Vi rekommenderar att du använderNOT EXISTSnär det är möjligt, eftersom underfrågor medDELETEochNOT INkan vara långsamma.
Exempel
> 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')