更新<一個class="headerlink" href="//m.eheci.com/docs/spark/latest/spark-sql/language-manual/#update" title="">
適用於:磚的SQL磚運行時
更新與謂詞匹配的行的列值。當沒有提供謂詞時,更新所有行的列值。
此語句僅支持Delta Lake表。
語法<一個class="headerlink" href="//m.eheci.com/docs/spark/latest/spark-sql/language-manual/#syntax" title="">
更新table_name[table_alias]集{{column_name|field_name}=[expr|默認的}(,...][在哪裏條款]
參數<一個class="headerlink" href="//m.eheci.com/docs/spark/latest/spark-sql/language-manual/#parameters" title="">
標識要更新的表。表名不能使用<一個class="reference internal" href="//m.eheci.com/docs/spark/latest/spark-sql/language-manual/sql-ref-names.html">時間規範.
為表定義別名。別名不能包含列列表。
對表中列的引用。每一列最多隻能引用一次。
STRUCT類型列中的字段引用。每個字段最多隻能引用一次。
任意表達式。如果你提到
table_name
列表示更新之前行的狀態。默認的
適用於:磚的SQL<一個class="reference internal" href="//m.eheci.com/docs/spark/latest/spark-sql/release-notes/index.html">SQL倉庫版本2022.35或更高版本Databricks運行時11.2及以上
的
默認的
如果定義了列,則為NULL。根據謂詞篩選行。的
在哪裏
子句可以包含子查詢,但有以下例外:嵌套子查詢,即一個子查詢在另一個子查詢中
一個
不在
子查詢或
,例如,一個=3.或b不在(選擇c從t)
在大多數情況下,您可以重寫
不在
子查詢使用不存在
.你應該使用不存在
如有可能,更新
與不在
子查詢可能很慢。
例子<一個class="headerlink" href="//m.eheci.com/docs/spark/latest/spark-sql/language-manual/#examples" title="">
>更新事件集eventType=“點擊”在哪裏eventType=“時鍾”>更新all_events集session_time=0,忽略了=真正的在哪裏session_time<(選擇最小值(session_time)從good_events)>更新訂單作為t1集order_status=“返回”在哪裏存在(選擇oid從returned_orders在哪裏t1.oid=oid)>更新事件集類別=“定義”在哪裏類別不在(選擇類別從events2在哪裏日期>“2001-01-01”)>更新事件集忽略了=默認的在哪裏eventType=“未知”