簡體   English   中英

Oracle 查詢返回時寫零的Case語句 null

[英]Oracle Case statement to write zero when the query returns null

我有一個 Oracle 查詢與 Union ALL。


 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 06:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 06:05:00', 'dd/mm/yyyy HH24:MI:SS')
 UNION ALL
 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 07:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 07:05:00', 'dd/mm/yyyy HH24:MI:SS')
 UNION ALL
 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 08:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 08:05:00', 'dd/mm/yyyy HH24:MI:SS')
 UNION ALL
 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 09:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 09:05:00', 'dd/mm/yyyy HH24:MI:SS')
 UNION ALL
 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 10:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 10:05:00', 'dd/mm/yyyy HH24:MI:SS')
 UNION ALL
 SELECT ROUND(AVG(BATTERYVOLTAGE),2)AVGVOLTAGE FROM MYTABLE WHERE trailerid = 3000 and DATADATE >= TO_DATE('25/08/2021 11:00:00', 'dd/mm/yyyy HH24:MI:SS') AND DATADATE <= TO_DATE('25/08/2021 11:05:00', 'dd/mm/yyyy HH24:MI:SS');


當我執行此查詢時,我得到一個 output 這樣的

AVGVOLTAGE
----------
9.5



12.7
12.7

如您所見,2、3、4 查詢的值為 null。如果找不到數據,有什么方法可以返回零? 我一直在關注這個https://www.oracletutorial.com/oracle-basics/oracle-case/但沒有成功。 :(。 非常感謝您的參與。

select語句中使用decodenvl

例子:

1.使用decode語句

select
decode(BATTERYVOLTAGE,null,'NOTFOUND',BATTERYVOLTAGE)
from 
MYTABLE 

2.使用nvl語句

select
nvl(BATTERYVOLTAGE,'NOTFOUND')
from
MYTABLE 

請確保“未找到數據”表示“NULL”

有關更多信息,請查看此 url

暫無
暫無

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

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