是否可以在case语句的“然后”阶段中使用listagg?
即使我已按其他选定字段进行分组,我也一直遇到与分组和括号相关的错误。
我的案例陈述当前如下:
MAX(CASE WHEN allergen.type = 'KTC' THEN listagg(allergen.name, ',') within group (order by allergen.name) END) AS Allergen_KTC
当按以下方式使用时效果很好:
MAX(CASE WHEN allergen.type = 'KTC' THEN allergen.name END) AS Allergen_KTC
我想我在这里错过了一些东西。
答案 0 :(得分:1)
反之亦然吗?
listagg(case when allergen.type = 'KTC' then allergen.name end, ',')
within group (order by allergen.name)
示例:
SQL> select listagg(case when deptno = 10 then ename end, ',')
2 within group (order by ename) result
3 from emp;
RESULT
--------------------------------------------------------------
CLARK,KING,MILLER
SQL>