Sql 使用页面项值在oracle apex中搜索经典报表

Sql 使用页面项值在oracle apex中搜索经典报表,sql,plsql,oracle-apex,Sql,Plsql,Oracle Apex,我在oracle apex中将数据库中的一个表显示为一个经典报告,现在我想为这个经典报告添加搜索条件,并创建一个选择列表、两个文本字段和一个go按钮,直到一切正常为止。在这里,我想在页面中显示经典报告,尽管这些值没有设置。如何在classic reports查询中进行调整,以便在未设置这些值的情况下,根据搜索条件显示DB表中的所有行 我的报告来源如下: select b.* from "#OWNER#"."Books" b where i_type = 'CU' and state

我在oracle apex中将数据库中的一个表显示为一个经典报告,现在我想为这个经典报告添加搜索条件,并创建一个选择列表、两个文本字段和一个go按钮,直到一切正常为止。在这里,我想在页面中显示经典报告,尽管这些值没有设置。如何在classic reports查询中进行调整,以便在未设置这些值的情况下,根据搜索条件显示DB表中的所有行

我的报告来源如下:

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是搜索条件中的文本字段,如果未设置这些值,则必须显示完整报告/如果已设置,则必须根据搜索显示

提前谢谢

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)
如果您想让搜索在城市上进行关键字搜索,您可以使用:

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)

你不需要连接-那会把你搞砸的

所以

and(类似“%”的城市:P46|u城市“%”或:P46|u城市为空)

变成


和(城市类型“%:P46_city%”或:P46_city为空)

谢谢,但我希望使用“喜欢”而不是“代码>城市=:P46_city”,但当我尝试以下操作时,它没有显示任何结果
city-like%:P46_-city%
city-like%:P46_-city%
:P46_-city
是绑定变量,不是替换变量,因此不能插入到那样的字符串中;但是,它可以连接到另一个字符串。查看我的编辑。为什么此答案标记为正确?这是行不通的。不能像那样连接绑定变量!