-
2022-01-17 16:41:02
SELECT t.xm, t.sfzh, ARRAY_JOIN(ARRAY_AGG(DISTINCT t.rylx), ',') rylx -- presto t.xm, t.sfzh, GROUP_CONCAT(t.rylx, ',') rylx -- mysql t.xm, t.sfzh, CONCAT_WS(',', COLLECT_SET(t.rylx)) rylx -- hive t.xm, t.sfzh, LISTAGG(t.rylx, ',') WITHIN GROUP (ORDER BY t.rylx) AS rylx -- oracle FROM (SELECT xm, sfzh, rylx FROM table1) t GROUP BY t.xm, t.sfzh
更多相关内容 -
sybase数据库多行合并为一行多列.sql
2020-05-02 15:16:53sybase数据库是不支持group_concat函数的,此文件为sybase存储过程样例,可以将多行信息按标识合并为一行多列。 -
各数据库SQL查询结果多行数据合并成一行
2022-07-08 09:22:27各数据库SQL查询结果多行数据合并成一行业务需要需要在oracle函数里把多行数据合并成一行,顺道发挥下常用的几种方法。
一、Oracle函数多行数据合并成一行
一、wm_concat
wm_concat函数是是oracle中常用的函数,功能:行转列,可以将查询出的多行某列值使用逗号进行隔开拼接,成为一条数据。示例,现在有一张风险表,每个风险项(risk_id)对应有多条规则(risk_rule),现在我要按照风险项把对应的规则都查询出来。
select risk_id, wm_concat(risk_rule) from risk_jour where risk_id='50010' group by risk_id
二、listagg
listagg函数是在oracle11g后新增的,是一个实现字符串聚合的内建函数。也可以实现行转列的功能,将某个字段的多行数据合并成一条。
select listagg(ri.risk_name, ';') within group(order by ri.risk_name) as name_list from t_risk ri
用法说明:
1.LISTAGG('需要拼接的数据表中的字段','分隔符') WITHIN GROUP( ORDER BY '需要拼接的数据表中的字段') 2.用法类似聚合函数,通过Group by语句,把每个Group的一个字段,拼接起来。
二、Mysql函数多行数据合并成一行
mysql中对应的函数为group_concat()函数。
需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中显示,效果如下:select username,group_concat(coursename Separator ',') as coursename from t_user_course group by username;
三、sqlserver函数多行数据合并成一行
SELECT username, coursename= ( STUFF( (SELECT ',' + coursename FROM t_user_course WHERE username= A.username FOR xml path('') ),1,1,'' ) ) FROM t_user_course A GROUP by cm_pk1;
四、postgresql函数多行数据合并成一行
如需要合并为逗号分隔的字符串,可以使用函数 string_agg(合并对象,连接字符),如下图:
SELECT c_id ,string_agg(param_cname,',') AS cname ,string_agg(param_value,',') AS value FROM base_channel_param WHERE c_id in (29,30) GROUP BY c_id
-
数据库合并列数据
2015-07-29 16:57:34数据库合并列数据,就是一列下面的多个单元格合并为一个单元格 -
数据库查询相关知识点
2020-12-14 17:26:14数据库Mysql查询基础知识点 文章目录数据库Mysql查询基础知识点重点:整个语句的执行过程如下:一.基础查询1.SELECT 子句的规定...合并查询结果六、关联查询七. COUNT的用法八 .DISTINCT的使用方法与注意补: where ,gro -
数据库查询结果集的集合操作
2020-08-06 18:10:25数据库中的查询语句的结果集( ResultSet ):集合A和集合B 集合 A: {1,2,3,4,5}, 集合 B: {1,3,5,7,9} A与B的合集:{1,2,3,4,5,7,9},元素聚合并去重 A与B的交集:{1,3,5},保留共有的元素 A与B的差集:{2,4},从A集合...集合操作的前提条件
1.两个结果集必须结构相同。
当列的个数、列的顺序、列的数据类型一致时 , 我们称这两个结果集结构相同2.只有结构相同的结果集才能做集合操作
集合操作
假设有两个数据库查询语句的结果集(ResultSet)分别为:集合 A {1,2,3,4,5} 和集合 B{1,3,5,7,9}
合集 union
A与B的合集,A union B,结果为:{1,2,3,4,5,7,9}。元素聚合并去重使用 union
合集 union 和 union all 的比较
1.union 去掉重复记录 , union all 不去重
2.union 排序,unionall 不排序在满足功能的前提下 , 优选 union all
交集 intersect
A与B的交集,A intersect B 结果为:{1,3,5},交集就是保留共有的元素。
差集 minus
两个集合做减法操作。
A与B的差集,A minus B 的结果为:{2,4},从A集合中去掉存在于集合B的所有元素,也可以理解为从A集合中去掉彼此共有的元素
-
pg数据库实现多行数据合并成一列
2021-08-17 14:42:50需要将上面这种结果集转行为下图格式: pg9.x版本可以结合分组函数GROUP BY与string_agg(col,'')实现; 具体写法如下: select string_agg(behavior_code,'<br />') as behavior_code,factor_code from t_...需要将上面这种结果集转化为下图所示格式:
pg9.x版本可以结合分组函数GROUP BY与string_agg(col,'')实现;
具体写法如下:
select string_agg(behavior_code,'<br />') as behavior_code,factor_code from t_evaluation_behavior group by factor_code order by factor_code;
-
oracle数据库将多个列的查询结果集合并到一行中
2021-12-27 09:57:31方法一: select field1,listagg(field3,',') within GROUP (order by field3) from test group by field1; 方法二(在方法一报出所拼接的字符串长度过长时,使用方法二): select field1,xmlagg(xmlparse... -
mysql数据库中把查询的结果列合并(GROUP_CONCAT)
2017-05-08 18:15:02在数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 列字段; 合并查询出的列: select GROUP_CONCAT(查询的字段 separator ‘;’) from table group by 列字段; -
SQL 查询数据列合并连接问题
2022-01-26 19:31:43有时需要将查询到的2类数据合并到一列显示,遇到这样情况很容易实现。使用Concat( ) 函数即可。例如:需要将TestPointDataID和TestPointName显示在同一列select * from TestPointList where TestTypeID=100587 ... -
oracle 数据库 多列结果相加数值计算合并一列
2021-02-25 10:02:26文章目录多列数值相加举例【参考资料】 ...// 查询 select 列1 主键,列2 主键数量,列3 个数 from 表名; select 列1 主键,列2 + 列3 总数 from 表名; 【参考资料】 https://bbs.csdn.net/topics/390413029 ... -
mysql数据库中利用GROUP_CONCAT)把查询的结果列合并分组显示
2020-06-12 14:39:22mysql数据库中把查询的结果列合并分组显示(GROUP_CONCAT) 效果图 在数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 列字段; 合并查询出的列: select GROUP_CONCAT(查询的... -
mysql数据库中如何把多列数据合并成一列?
2019-05-06 10:20:16mysql数据库中如何把多列数据合并成一列? -
数据库查询结果去重常用方法整理
2020-03-11 20:21:34一般情况下,数据库去重复有以下那么三种方法: 第一种: 两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例: SELECT DISTINCT * FROM TABLE 使用 distinct: ... -
达梦数据库- 查询多行数据合并成一行数据
2020-03-31 09:57:44达梦 wm_concat函数,用于列转行,逗号分隔 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据 SQL> ... -
MySQL两个查询合并成一个结果
2021-05-26 13:57:41MySQL 查询合并 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 注意:两个列表中的字段要一样才... -
SQL 两个无关的查询结果如何合并成多列
2018-06-15 07:54:35 表1字段A、B、C;表2字段D、E、F; 如何根据表1和表2信息,生成表3信息。 -
如何将SQL查询出的两列合并成一列显示,并用逗号隔开
2021-11-15 17:05:51如何将SQL查询出的两列合并成一列显示,并用逗号隔开 先给出一个表 DROP TABLE IF EXISTS `apps`; CREATE TABLE `apps` ( `id` int NOT NULL AUTO_INCREMENT, `app_name` varchar(255) CHARACTER SET utf8 ... -
mysql把两个查询的结果合并为一个结果
2021-06-28 09:09:06select 查询结果 from 从哪张表查询 union all select 查询结果 from 从哪张表查询 练习: 将课程表及课程表1合并在一起 课程表1: 1dd4140cf5c4a6a767a6a9fef7c25111.png 课程表2: 27ba4b0014ac38ede67f84e5be8014... -
Mysql、oracle、Sybase数据库两列合并成一列的sql语句
2011-08-24 17:01:05Mysql、oracle、Sybase数据库两列合并成一列的sql语句 -
mysql数据库中把查询的结果列合并分组显示(GROUP_CONCAT)
2019-05-10 15:20:13在数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 列字段; 合并查询出的列: selectGROUP_CONCAT(查询的字段 separator ‘;’) from table group by 列字段; ... -
sql将查询结果将多列合并成一列
2017-03-29 14:08:43mysql: select concat(str1,str2,str3) from 表; -- concat可以带多个参数 oracle : select concat(str1,str2) from 表; -- concat只能带两个参数 select str1||str2||str3 from 表; -
sqlsever2019:union合并多个查询结果
2021-12-27 00:27:47UNION多表查询讲解 -
MySql 将查询结果多列合并成一行GROUP_CONCAT
2019-09-20 15:59:43MySql 将查询结果多列合并成一行GROUP_CONCAT GROUP_CONCAT(expr) 该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER ... -
PostgreSQL合并查询同一列的多条记录
2019-02-21 15:18:10昨天遇到一个sql问题,需要将一个表中的某一列的多行数据拼接成一行 例如:表中有2列数据: 列1 列2 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 列1 列2 AAA... -
关于ACCESS数据库多表查询结果列合并
2009-05-22 19:38:00最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了数据库设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题: 现有表: G(GID, abID, AID, BID) A(AID, ANAME) ...