Oracle一列的多行数据拼成一行显示字符 oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数. www.2cto.com 先介绍:WMSYS.WM_CONCAT 例: id name 1 aa 2 bb 3 cc 要的结果是"aa,bb,cc" select WMSYS.WM_CONCAT(a.name) from user a 这样的话,查询出的结果:
如下表: 表名:Test ID RowID Col1 Col2 1 1 A A 2 1 B A 3 1 A B 4 1 C B 1,查找表中字段重复的只查找一次 select distinct Col1 from Test ; select Col1 from Test where ID in(select min(ID) from Test group by Col1 ); 结果为: A B C 2,统计并查询该字段出现的数量 SELECT Col1,COUNT(Col1) FROM Tes
查询表中的一个字段,返回了多行,就把这么多行的数据都拼成一个字符串. 例: id name 1 aa 2 bb 3 cc 要的结果是"aa,bb,cc" 以前有过这种需求,我用存储过程拼接,或者在程序中取出数据拼接,就这样暂时解决了. 可是事后一直在想是不是可以直接查出来,这样就简单多了,oracle中应该有这样的方法的,可是一直没找到,呵呵,今天终于解决了. select WMSYS.WM_CONCAT(a.name) fr
.1GROUP_CONCAT()中的值为你要合并的数据的字段名; SEPARATOR 函数是用来分隔这些要合并的数据的: ' '中是你要用哪个符号来分隔: 2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录 SELECT am.activeId,GROUP_CONCAT(m.modelName SEPARATOR ',') modelName FROM activemodel am JOIN model m ON am.modelId=m.modelId WHE
关键字 row_number() over (partition by) 例如,下面的数据, 这是按照name分组后,展示property值. 我们想得到这样的值; 第一步:将每一组的property标上序号 select name,property,row_number() over (partition by name order by property desc) column_num from test 得到的结果: partition by 后面接的就应该是将要分组的字段.如果pa
with a as( select nsr.zgswj_dm, count(distinct nsr.djxh) cnt, 1 z from hx_fp.fp_ly fp, hx_dj.dj_nsrxx nsr where nsr.djxh = fp.djxh and nsr.nsrzt_dm = '03' and fp.lrrq >= date '2018-03-01' and fp.lrrq <= date '2018-04-01' AND nsr.ZGSWSKFJ_DM LIKE '13
参考来自:http://bbs.csdn.net/topics/390737006 1.效果演示 (1)不做处理 (2)合并多列,并对后四列的值做并集处理 2.SQL语句 (1)不做处理 SELECT C .fd_tenantid AS fdTenantId, C .fd_resid AS fdResid, C .fd_res_name AS fdResName, C .fd_service AS fdService, b.fd_get AS fdGET, b.fd_post AS fdPOST