我有一個表中包含一些帶有日期字段的數據。如何在表中找不到數據時獲取缺省值的行
例:
|SCHEDULED_DATE |
---------------
|06-MAY-2016 |
|08-MAY-2016 |
|10-JUL-2016 |
現在我需要計數的天每月。
SELECT CASE WHEN (
SELECT COUNT(*)
FROM SCHEDULE
WHERE SEQ = '429'
AND TO_CHAR((SCHEDULED_DATE),'MON-YYYY')='MAY-2016')=0
THEN 0
ELSE (SELECT COUNT(*)
FROM SCHEDULE
WHERE SEQ = '429'
AND TO_CHAR((SCHEDULED_DATE),'MON-YYYY')='MAY-2016')
END
AS NO_OF_DAYS, NVL(TO_CHAR((SCHEDULED_DATE),'MON'),'MAY') AS MONTH
FROM SCHEDULE
WHERE SEQ = '429';
在NVL
我將執行
當運行此查詢的MAY
月我得到的值2和輸出是這樣之前更新每個月的替代值。
|NO_OF_DAYS |MONTH|
------------ -----
|2 |MAY |
但對於JUN
月份我需要它顯示爲0,但輸出是這樣
|NO_OF_DAYS |MONTH|
------------ -----
| | |
我期望的輸出是這樣的
|NO_OF_DAYS |MONTH|
------------ -----
|0 |JUN |
反正是有爲了達成這個?
注:我更新了我的問題,因爲它不清楚。對不起,我第一次沒有正確地問。
我不明白你的問題。您的查詢將返回完全一行。但是,您顯示的結果集有三行。 –
@GordonLinoff不,我給出了一個例子,這個查詢從我的程序 –
中動態獲取'seq'和'month'值。 。我再說一遍:在你的問題中的查詢將返回*完全*一行。如果沒有行匹配,計數將爲零。你的整體問題沒有意義。也許你應該問另一個問題,並顯示更完整的代碼。 –