我正在我的数据库中显示一个表作为我的oracle apex中的经典报告,现在我想为这个经典报告添加搜索条件并创建一个选择列表,两个文本字段和一个go按钮,直到这一切都正确。在这里,我想在页面中显示经典报告,虽然这些值没有设置。如何在经典报告查询中进行调整,以便在未设置这些值的情况下,我应该根据搜索条件显示数据库表中的所有行。
我的报告来源如下:
select b.*
from "#OWNER#"."Books" b
where i_type = 'CU'
and state = :P46_STATE
and city = :P46_CITY
and name = :P46_NAME
:P46_state是一个选择列表,:P46_city,:P46_name是搜索条件中的文本字段,如果未设置这些值,则必须显示完整报告/并且如果设置必须按搜索显示。
提前致谢。
答案 0 :(得分:1)
select b.*
from "#OWNER#"."Books" b
where i_type = 'CU'
and (state = :P46_STATE OR :P46_STATE IS NULL)
and (city = :P46_CITY OR :P46_CITY IS NULL)
and (name = :P46_NAME OR :P46_NAME IS NULL)
如果您希望搜索在CITY上进行关键字搜索,可以使用LIKE:
select b.*
from "#OWNER#"."Books" b
where i_type = 'CU'
and (state = :P46_STATE OR :P46_STATE IS NULL)
and (city LIKE '%'||:P46_CITY||'%' OR :P46_CITY IS NULL)
and (name = :P46_NAME OR :P46_NAME IS NULL)
或者,您可以使用INSTR:
select b.*
from "#OWNER#"."Books" b
where i_type = 'CU'
and (state = :P46_STATE OR :P46_STATE IS NULL)
and (INSTR(city, :P46_CITY) > 0 OR :P46_CITY IS NULL)
and (name = :P46_NAME OR :P46_NAME IS NULL)
答案 1 :(得分:-1)
你不需要连接 - 这让你搞砸了
SO
和(城市LIKE'%'||:P46_CITY ||'%'或:P46_CITY为空)
变为
和(城市LIKE'%:P46_CITY%'或:P46_CITY为空)