首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Sql LISTAGG with CASE

Oracle Sql LISTAGG with CASE
EN

Stack Overflow用户
提问于 2017-12-29 20:23:23
回答 1查看 1.8K关注 0票数 0

我正在尝试向下面的查询添加一个LISTAGG函数,以便输出可以是由commas.Can分隔的单个值。有人建议如何向其添加LISTAGG函数。

代码语言:javascript
复制
SELECT CASE A.ATTRIBUTE_NAME
WHEN 'EA' THEN 'EMAIL ADDRESS'
WHEN 'CP' THEN 'Company'
WHEN 'OG' THEN 'Organization'
END AS USER_DETAILS
FROM USERS A LEFT OUTER JOIN DETAILS B
ON A.ID = B.USER_ID
WHERE USER_NAME LIKE '%John%'
EN

回答 1

Stack Overflow用户

发布于 2017-12-29 21:28:35

根据您的描述,您只需要将case表达式放在listagg()调用中:

代码语言:javascript
复制
SELECT LISTAGG(
  CASE A.ATTRIBUTE_NAME
    WHEN 'EA' THEN 'EMAIL ADDRESS'
    WHEN 'CP' THEN 'Company'
    WHEN 'OG' THEN 'Organization'
  END,
  ',') WITHIN GROUP (ORDER BY A.ATTRIBUTE_NAME) AS USER_DETAILS
FROM USERS A LEFT OUTER JOIN DETAILS B
ON A.ID = B.USER_ID
WHERE USER_NAME LIKE '%John%'

尽管它看起来应该引用B.ATTRIBUTE_NAME;但也许您在修改posting代码时弄错了。并且您可能希望对列表中的项进行不同的排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48022584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档