Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Hiermit werden die Zeilen gelöscht, die mit einem Prädikat übereinstimmen. Wenn kein Prädikat angegeben ist, werden alle Zeilen gelöscht.
Diese Anweisung wird nur für Delta Lake-Tabellen unterstützt.
Syntax
[ common_table_expression ]
DELETE FROM table_name [table_alias] [WHERE predicate]
Parameter
-
Allgemeine Tabellenausdrücke (Common Table Expressions, CTE) sind eine oder mehrere benannte Abfragen, die mehrmals innerhalb des Hauptabfrageblocks wiederverwendet werden können, um wiederholte Berechnungen zu vermeiden oder die Lesbarkeit komplexer, geschachtelter Abfragen zu verbessern.
-
Hiermit wird eine vorhandene Tabelle identifiziert. Der Name darf keine temporale Spezifikation enthalten.
table_namedarf keine Fremdtabelle sein. -
Hiermit wird ein Alias für die Tabelle definiert. Der Alias darf keine Spaltenliste enthalten.
-
Filtert Zeilen nach Prädikat.
Das Prädikat
WHEREunterstützt Unterabfragen, einschließlichIN,NOT IN,EXISTS,NOT EXISTSund skalare Unterabfragen. Die folgenden Unterabfragetypen werden nicht unterstützt:- Geschachtelte Unterabfragen, d. h. eine Unterabfrage innerhalb einer anderen Unterabfrage
-
NOT IN-Unterabfrage in einerOR-Abfrage, z. B.a = 3 OR b NOT IN (SELECT c from t)
In den meisten Fällen können Sie
NOT IN-Unterabfragen mithilfe vonNOT EXISTSumschreiben. Wir empfehlen, nach MöglichkeitNOT EXISTSzu verwenden, daDELETEmitNOT IN-Unterabfragen langsam sein kann.
Beispiele
> 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')