[英]Replace null with same value per date - oracle sql
我正在嘗試通過在同一DATA
日內為所有HOUR
小時設置相同的值來更新VAL
的查詢。 它必須以某種方式檢查同一日期的值,並用它替換空值,但是我似乎無法全力以赴。 在此先感謝您的幫助!
PROCESS DATA HOUR VAL
-------- ---------- ----- -------
508410 2015.03.29 19 36.15
508410 2015.03.30 11 NULL
508410 2015.03.30 14 NULL
508410 2015.03.30 15 35.36
508410 2015.03.30 23 NULL
508410 2015.03.31 11 NULL
508410 2015.03.31 12 20.4
508410 2015.04.01 01 NULL
508410 2015.04.01 02 37.06
我希望它看起來像:
PROCESS DATA HOUR VAL
-------- ---------- ----- -------
508410 2015.03.29 19 36.15
508410 2015.03.30 11 35.36
508410 2015.03.30 14 35.36
508410 2015.03.30 15 35.36
508410 2015.03.30 23 35.36
508410 2015.03.31 11 20.4
508410 2015.03.31 12 20.4
508410 2015.04.01 01 37.06
508410 2015.04.01 02 37.06
一種方法是在set
子句中進行內聯查詢。 您可以利用max
忽略null
的事實,並使用它返回每個data
唯一的非null val
:
UPDATE mytable a
SET a.val = (SELECT MAX(val)
FROM mytable b
WHERE b.data = a.data)
WHERE a.val IS NULL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.