我試圖運行下面的查詢Select語句:內NVL
select a.*,
case when NVL (SELECT max(b.field1)
FROM b
where b.field2 = a.tbl_a_PK , 'TRUE') = 'TRUE'
then 'has no data in b'
else 'has data in b' end as b_status
from a
我檢查和NVL只返回1個值內選擇(所以應該不會有問題那裏)。 但是我得到「ORA-00936:缺少表達式」
剛纔我意識到我可以輕鬆做到這一點:選擇一個*,case when(SELECT max(b.field1) FROM b where b.field2 = a.tbl_a_PK)爲null,則'b'中沒有數據'else'b'中的數據結束爲a中的b_status。但我仍然對nvl的問題感到好奇。 –
您需要在函數內包裝select語句的圓括號。最好使用Coalesce()而不是Nvl() –