更新<一個class="headerlink" href="//www.eheci.com/docs/spark/2.x/spark-sql/language-manual/#update" title="">

更新與謂詞匹配的行的列值。當沒有提供謂詞時,更新所有行的列值。

此語句僅支持Delta Lake表。

語法<一個class="headerlink" href="//www.eheci.com/docs/spark/2.x/spark-sql/language-manual/#syntax" title="">

更新table_nametable_aliascolumn_name|field_nameexpr|默認的(,...在哪裏條款

參數<一個class="headerlink" href="//www.eheci.com/docs/spark/2.x/spark-sql/language-manual/#parameters" title="">

  • table_name

    標識要更新的表。表名不能使用<一個class="reference internal" href="//www.eheci.com/docs/docs/spark/2.x/spark-sql/language-manual/sql-ref-names.html">時間規範

  • table_alias

    為表定義別名。別名不能包含列列表。

  • column_name

    對表中列的引用。每一列最多隻能引用一次。

  • field_name

    STRUCT類型列中的字段引用。每個字段最多隻能引用一次。

  • expr

    任意表達式。如果你提到table_name列表示更新之前行的狀態。

  • 默認的

    自:Databricks運行時11.2

    默認的如果定義了列,則為NULL。

  • 在哪裏

    根據謂詞篩選行。的在哪裏子句可以包含子查詢,但有以下例外:

    • 嵌套子查詢,即一個子查詢在另一個子查詢中

    • 一個子查詢,例如,一個3.b(選擇ct)

    在大多數情況下,您可以重寫子查詢使用存在.你應該使用存在如有可能,更新子查詢可能很慢。

例子<一個class="headerlink" href="//www.eheci.com/docs/spark/2.x/spark-sql/language-manual/#examples" title="">

>更新事件eventType“點擊”在哪裏eventType“時鍾”>更新all_eventssession_time0忽略了真正的在哪裏session_time<選擇最小值session_timegood_events>更新訂單作為t1order_status“返回”在哪裏存在選擇oidreturned_orders在哪裏t1oidoid>更新事件類別“定義”在哪裏類別選擇類別events2在哪裏日期>“2001-01-01”>更新事件忽略了默認的在哪裏eventType“未知”