TA BORT FRÅN

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime

Tar bort de rader som matchar ett predikat. När inget predikat anges tar alla rader bort.

Den här instruktionen stöds endast för Delta Lake-tabeller.

Syntax

DELETE FROM table_name [table_alias] [WHERE predicate]

Parametrar

  • Table_name

    Identifierar en befintlig tabell. Namnet får inte innehålla en temporal specifikation.

    table_name får inte vara en sekundär tabell.

  • table_alias

    Definiera ett alias för tabellen. Aliaset får inte innehålla en kolumnlista.

  • DÄR

    Filtrera rader efter predikat.

    Predikatet WHERE stöder underfrågor, inklusive IN, NOT IN, EXISTS, NOT EXISTSoch skalär 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 IN subquery i en OR, till exempel a = 3 OR b NOT IN (SELECT c from t)

    I de flesta fall kan du skriva om NOT IN underfrågor med hjälp av NOT EXISTS. Vi rekommenderar att du använder NOT EXISTS när det är möjligt, eftersom DELETE underfrågor NOT IN kan 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')