Oracle SQL APEX 的搜索查询

Search Query for Oracle SQL APEX

我正在尝试使用 Oracle SQL 在 Oracle APEX class 报告中创建高级搜索查询。

当参数中有值时,有没有办法将查询行插入到查询中?

例如,我有这样的查询:

select person_id, fullname from person where first_name like '%:P11_FNAME%' AND last_name like '%:P11_LNAME%'

有没有办法在传入实际值时将 first_name like '%:P11_FNAME%' 添加到查询中?

如果绑定变量语法嵌入到 '%:P11_FNAME%'.

之类的字符串文字中,则 SQL 引擎将无法识别它

您需要使用字符串连接来完成您想要的操作:

select person_id, fullname from person
where first_name like '%' || :P11_FNAME || '%'
AND last_name like '%' || :P11_LNAME || '%';

如果用户将搜索条件留空,这将匹配除名称为 NULL 的行之外的所有行。要使空白搜索条件匹配所有行,您需要添加额外的谓词,例如:

select person_id, fullname from person
where (first_name like '%' || :P11_FNAME || '%' or :P11_FNAME is null)
AND (last_name like '%' || :P11_LNAME || '%' or :P11_LNAME is null);