Oracle 如何在查询的where子句中使用APEX复选框组值
我用的是APEX 20.2。 我有一个复选框组,有3个不同的值: 此组中检查的值用于筛选查询,我不确定如何编写where子句 以下是我所拥有的:Oracle 如何在查询的where子句中使用APEX复选框组值,oracle,oracle-apex,Oracle,Oracle Apex,我用的是APEX 20.2。 我有一个复选框组,有3个不同的值: 此组中检查的值用于筛选查询,我不确定如何编写where子句 以下是我所拥有的: SELECT Null as link, PERSONNE_EN_CHARGE as label, count(*) as value FROM FLYWAY_MEP_HISTORY WHERE STATUT_MEP='SUCCESS' AND (DATE_MEP BETWEEN to_date(:DATE_DEBUT,'DD/MM/YYYY')
SELECT Null as link, PERSONNE_EN_CHARGE as label, count(*) as value
FROM FLYWAY_MEP_HISTORY
WHERE STATUT_MEP='SUCCESS'
AND (DATE_MEP BETWEEN to_date(:DATE_DEBUT,'DD/MM/YYYY') AND to_date(:DATE_FIN ,'DD/MM/YYYY')+1)
OR (:DATE_DEBUT is null and :DATE_FIN is null)
AND (UPPER(ENVIRONNEMENT) is null or UPPER(ENVIRONNEMENT) IN (:ENVIRONNEMENT))
GROUP BY PERSONNE_EN_CHARGE
ORDER BY 2;
我不确定的部分是这一部分:
UPPER(ENVIRONNEMENT) IN (:ENVIRONNEMENT))
如何使用where子句中复选框组的值
如果我调试页面,我可以在devlopper控制台中看到这一点
在Apex中选择多个值时,它们用冒号分隔。因此,如果将该值拆分为行,则可以将其用作子查询。就你而言:
...
or UPPER(ENVIRONNEMENT) IN
(select regexp_substr(:ENVIRONNEMENT, '[^:]+', 1, level)
from dual
connect by level <= regexp_count(:ENVIRONMENT, ':') + 1
)
请注意,Apex有一个很好的内置拆分函数,可以简化此操作:或从tableapex_字符串中选择列_值中的UpperEnvironment。拆分:Environment,':'