它可能做這樣的事情:NVL與查詢中
and zmt.mediatypeid in nvl(:P21_MEDIA, select mediatypeid from zbx.media_type)
:P21_MEDIA是一個變量
它可能做這樣的事情:NVL與查詢中
and zmt.mediatypeid in nvl(:P21_MEDIA, select mediatypeid from zbx.media_type)
:P21_MEDIA是一個變量
是的,你可以使用CASE語句來檢查條件:
and 1 = CASE
WHEN :P21_MEDIA IS NOT NULL THEN
CASE
WHEN zmt.mediatypeid = :P21_MEDIA THEN 1
ELSE 0
END
WHEN zmt.mediatypeid IN (select mediatypeid from zbx.media_type) THEN 1
ELSE 0
END
我要去試試:) – macwadu
是的,它被稱爲scalar subquery expression:
select x, (select y from another_table where foo = x) from the_table
select x from the_table where foo = (select y from another_table where bar = x)
它只能返回一列和一行,其他都是錯誤。
我現在無法測試它,但我會假設你也可以在NVL之類的函數中使用它。該文檔只提到它不能在GROUP BY中使用。
是的,我都試過了。我的問題是如果有可能做一個nvl函數內的查詢,就像我放在那裏的例子。 – macwadu