共用方式為


DELETE FROM

適用於: 核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

刪除符合述詞的數據列。 未提供述詞時,會刪除所有數據列。

只有 Delta Lake 數據表才支援此語句。

語法

DELETE FROM table_name [table_alias] [WHERE predicate]

參數

  • table_name

    識別現有的數據表。 名稱不得包含時態性規格

    table_name 不得為外表。

  • table_alias

    定義數據表的別名。 別名不得包含數據行清單。

  • WHERE

    依述詞篩選數據列。

    WHERE 詞支持子查詢,包括 INNOT INEXISTSNOT EXISTS、 和純量子查詢。 不支援下列型態的子查詢:

    • 巢狀子查詢,也就是另一個子查詢內的子查詢
    • NOT IN 中的子查詢 OR,例如 a = 3 OR b NOT IN (SELECT c from t)

    在大部分情況下,您可以使用 重寫 NOT IN 子查詢 NOT EXISTS。 我們建議盡可能使用 NOT EXISTS ,因為 DELETE 使用 NOT IN 子查詢可能會很慢。

範例

> 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')