Oracle Apex集合游标SQL修改求助:适配特殊员工筛选场景
解决Apex集合查询的例外场景筛选问题
直接修改游标查询的WHERE子句,通过**逻辑或(OR)**组合原有规则和例外场景即可实现需求,修改后的完整查询如下:
c001 - EMP_ID c002- DEPT_ID c003 - Employee_Name c004 - BU Cursor cur is SELECT c001,c002,c003,C004 LISTAGG(c003, '-') WITHIN GROUP (ORDER BY c003) OVER (PARTITION BY c002) c004_emp_group FROM apex_collections WHERE collection_name='COLLECTION_1' AND ( -- 原有筛选规则:BU为BU-001,且匹配绑定变量的EMP_ID、DEPT_ID (c004 ='BU-001' AND c001 = :EMP_ID AND c002= :DEPT_ID) -- 新增例外场景:EMP_ID以9开头,且DEPT_ID为4,不限制BU OR (c001 LIKE '9%' AND c002='4') );
关键修改说明:
- 用括号包裹两组条件,确保逻辑优先级正确,避免条件冲突
- 例外场景中使用
LIKE '9%'匹配以9开头的EMP_ID,如果c001是数字类型,需要转换为字符串后再匹配,例如TO_CHAR(c001) LIKE '9%' - 例外场景未添加
c004的限制,因此无论BU是什么值都会被纳入结果
内容的提问来源于stack exchange,提问作者Velocity
相关产品推荐
相关产品推荐

