它可能做这样的事情: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