0
我想創建一個報告,它檢查返回的數據的SQL語句,並根據結果集使用Y/N填充列。Oracle - 沒有行返回/插入一個值
我已經嘗試使用NVL功能,但我認爲我完全忽略了這個函數的重點 - 下面的查詢不返回任何行,所以沒有'null值',這就是爲什麼NVL函數在我的情況下不起作用 - 我試過了COALESCE,但我無法繞過嵌入的SELECT並調用一個虛擬的'DUAL'表。
有沒有一種方法可以用來在'沒有行返回'的情況下提供一個值?
SELECT
TO_CHAR(AR_WD_EVENTS.EVENT_ID)
FROM
AR_WD_EVENTS, AR_PI_SITE_BLOCKS
WHERE AR_WD_EVENTS.EVENT_BLOCK_ID = {!AR_PI_SITE_BLOCKS.SITE_ID}
AND TO_CHAR(AR_WD_EVENTS.EVENT_CONTRACT_ID) = 1555
這是QB語法 - '6。 Shutters - Event'是上面的SQL查詢的名稱,基本上我希望SQL語句返回相應的'Event ID',如果它沒有找到'Event ID',那麼給出NULL/Zero/NA的值,以便我可以在下面的QBF語句中使用它 - 因爲它表示SQL查詢可以正常工作,但只有在有值返回時才適用。
$QBFvalue = 'Y';
if ({%6. Shutters - Event} = 'N/A') $QBFvalue = 'N';
return $QBFvalue;
非常感謝
計數/最大解決方案在某些方面工作,即他們完成了工作,但我希望能夠調用SQL語句的結果集來填充報表 - 所以在這種情況下,計數/最大值將允許我說Y/N值已經找到了,我想要做的就是顯示這個值是什麼,使用max/count函數不允許這樣做,因此我爲什麼要看NVL/2和COALESCE函數 - 感謝您的輸入,但 – cstones88
MAX()將返回找到的值,並且可以顯示此值。唯一的限制是只有一個值將會返回(最高值),但如果給定的EVENT_CONTRACT_ID只能關聯到單個EVENT_ID,則這不是問題。既然你沒有顯示涉及表格的結構,那麼這是不清楚的。 –