簡體   English   中英

如果未設置,則復制上一行中的值

[英]Copy value in previous row if not set

我想為 BigQuery 編寫一個SELECT查詢,將列的值設置為上一行中的值,如果在當前行中將其設置為 NULL。

我現在有這樣的東西:

SELECT *, IFNULL(tag, LAG(tag) OVER(ORDER BY id)) as new_tag FROM tags

...但它只將值復制到相鄰的 NULL 行中。 有什么辦法嗎?

LAG window function 不支持IGNORE NULLS子句,因此請改用LAST_VALUE function 和IGNORE NULLS NULLS。 如果應用於您的查詢,

SELECT *, LAST_VALUE(tag IGNORE NULLS) OVER(ORDER BY id) as new_tag FROM tags

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM