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);
我正在尝试使用 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%'
.
您需要使用字符串连接来完成您想要的操作:
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);