关于oracle函数listagg的使用说明
做项目的过程中遇到过一个这样的需求,在“用户查询”前台加一个字段“用户角色”,要将用户的所有角色查询出来放到一个字段中,角色之间用“,”分隔。
发现一个办法是使用Oracle的listagg方法。
- WITH TMP AS
 - (SELECT TU.USERNAME, TE.EMP_NAME, TE.EMP_DUTY_NAME, TR.ROLE_NAME
 - FROM TS_USER TU,
 - TS_USER_ROLE TUR,
 - TS_ROLE TR,
 - TM_DEPARTMENT TD,
 - TM_EMPLOYEE TE
 - WHERE TU.USER_ID = TUR.USER_ID
 - AND TU.EMP_ID = TE.EMP_ID
 - AND TUR.ROLE_ID = TR.ROLE_ID
 - AND TU.DEPT_ID = TD.DEPT_ID
 - AND TD.DEPT_CODE = '755Y'
 - ORDER BY TU.USERNAME ASC)
 - SELECT USERNAME 用户名,
 - EMP_NAME 员工姓名,
 - EMP_DUTY_NAME 职位,
 - LISTAGG(ROLE_NAME, ',') WITHIN GROUP(ORDER BY ROLE_NAME) 用户角色
 - FROM TMP
 - GROUP BY USERNAME, EMP_NAME, EMP_DUTY_NAME;
 
查询结果:
| ID | 用户名 | 用户姓名 | 职位 | 角色 | 
| 1 | 162 | 162 | 保洁员 | 子系统管理员,调度用户 | 
| 2 | 195 | 195 | 运作司机 | 总部质量管理员,普通用户 | 
| 3 | 202 | 202 | 员工关系中级专员Ⅱ | 地区质量管理员 | 
| 4 | 7310 | ** | 质检管理工程师 | 地区质量界定员 | 
| 5 | 124915 | ** | 调度经理 | 分点部用户 | 
| 6 | 592884 | **浩 | 网络规划初级专员Ⅰ | 分点部用户,地区质量界定员,地区质量管理员,普通用户 | 
关于oracle函数listagg的使用说明的更多相关文章
- oracle函数listagg的使用说明(分组后连接字段)
		
关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用 ...
 - [转载]oracle函数listagg的使用说明
		
工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称 ...
 - oracle函数listagg使用
		
作用 可以实现将多列记录聚合为一列记录,实现数据的压缩 语法结构 listagg(measure_expr,delimiter) within group ( order by order_by_cl ...
 - Oracle列转行函数LISTAGG()
		
--Oracle列转行函数LISTAGG() with tb_temp as( select 'China' 国家,'Wuhan' 城市 from dual union all select 'Chi ...
 - Oracle列转行函数Listagg以及pivot查询示例
		
简单的Oracle列转行函数Listagg示例: CREATE TABLE tbl_test (catalog VARCHAR(1),product VARCHAR(2),amount NUMBER) ...
 - oracle的listagg函数
		
今天需要将 BDST_ID相同的PROJECT_ID用逗号分隔拼成一个字符串,于是想到了oracle的listagg函数 表名为PM_BDST_PROJECT select tt.BDST_ID, l ...
 - oracle 聚合函数 LISTAGG ,将多行结果合并成一行
		
LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name) -- 将 Item_Cate ...
 - 【Oracle】oracle之listagg分析函数
		
oracle分析函数——listagg篇 (1)使用listagg将多行数据合并到一行 例表: select deptno, ename from emp order by deptno, ename ...
 - oracle函数,游标,视图使用总结0.000000000000000000001
		
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...
 
随机推荐
- IE haslayout的属性及其值
			
haslayout是IE 渲染引擎的一个内部组成部分.在IE 中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容.为了调节这两个不同的概念,渲染引擎采用了hasl ...
 - 微信h5支付“网站域名ICP备案主体与商户号主体不一致”的解决方法,H5微信支付 授权函下载
			
如下图所示: 微信h5支付“网站域名ICP备案主体与商户号主体不一致”: 需提交H5微信支付 授权函 下载地址:https://download.csdn.net/download/a72400815 ...
 - SVN如何将版本库url访问地址中的https改为http
			
1.选择控制台树中的根节点,右键选择“属性”. 2.切换至面板“网络”. 3.取消勾选项“使用安全连接协议(https://)”.
 - flask自动代码自动补全
			
编写py文件时,无法补全: 在app对象后面添加:# type:Flask app=Flask(__name__) # type:Flask from flask import Flask, fl ...
 - UI简述
			
UI的全称是user interface,即是用户界面.UI设计是指对软件的人机交互,操作编辑,界面美观的整体设计,从简单的角度来说就是,UI是视觉上的东西,包括logo.软件.网页的按钮.网页导航, ...
 - NPM安装步骤
			
一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ...
 - ArrayList集合、String[]数组、String字符串
			
数组初始化时候必须指定长度,而ArrayList是动态数组,可以根据实际内容改变 //声明stsArr数组并初始化 String[] strArr = new String[]{ "aaa& ...
 - tf.argmax()以及axis解析
			
首先,明确一点,tf.argmax可以认为就是np.argmax.tensorflow使用numpy实现的这个API. 简单的说,tf.argmax就是返回最大的那个数值所在的下标. 这个 ...
 - Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem E (Codeforces 831E) - 线段树 - 树状数组
			
Vasily has a deck of cards consisting of n cards. There is an integer on each of the cards, this int ...
 - android 系统 不深度休眠【转】
			
本文转载自:https://blog.csdn.net/fmc088/article/details/80401405 1.分析解析 android系统有earlysuspend和suspend两种休 ...