You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle APEX交互式报表查询的WHERE条件中使用LIKE运算符

在Oracle APEX中结合页面项与LIKE运算符的正确写法

你当前的查询问题在于没有给页面项:P39_IDNO添加LIKE需要的百分号通配符——静态查询里的%10280%是把匹配值前后用百分号包裹实现模糊匹配,直接用:P39_IDNO的话,相当于精确匹配页面项的输入值,自然达不到预期效果。

解决方法很简单,直接在查询里把百分号和页面项拼接起来,以下是两种常用写法:

基础模糊匹配写法

直接在WHERE条件中拼接百分号,和静态查询的逻辑完全一致:

SELECT APPT_NO , REQUESTED_OPERATION , CLINICIAN_NAME , CLINICIAN_NAME_AR , STATUS , 
START_DATE  , CREATED_DATE , app_comment,
PRACT_FIRST_NAME_A || ' '|| PRACT_FAMILY_NAME_A as "Doctor"
FROM appt_notify
WHERE PATIENT_Data LIKE '%' || :P39_IDNO || '%'

这样会匹配PATIENT_Data中包含页面项:P39_IDNO值的所有记录。

适配空值的优化写法

如果希望页面项为空时返回所有数据,不为空时才执行模糊匹配,可以加上空值判断:

SELECT APPT_NO , REQUESTED_OPERATION , CLINICIAN_NAME , CLINICIAN_NAME_AR , STATUS , 
START_DATE  , CREATED_DATE , app_comment,
PRACT_FIRST_NAME_A || ' '|| PRACT_FAMILY_NAME_A as "Doctor"
FROM appt_notify
WHERE (:P39_IDNO IS NULL OR PATIENT_Data LIKE '%' || :P39_IDNO || '%')

这种写法更灵活,避免页面项未输入值时没有结果返回。

内容的提问来源于stack exchange,提问作者Ziad Adnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:46:16