精华内容
下载资源
问答
  • 数据库查询结果合并同列
    千次阅读
    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数据库是不支持group_concat函数的,此文件为sybase存储过程样例,可以将多行信息按标识合并为一行多
  • 数据库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
    数据库合并列数据,就是一列下面的多个单元格合并为一个单元格
  • 数据库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;

    展开全文
  • 方法一: select field1,listagg(field3,',') within GROUP (order by field3) from test group by field1; 方法二(在方法一报出所拼接的字符串长度过长时,使用方法二): select field1,xmlagg(xmlparse...
  • 数据库中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 ...
  • 文章目录多数值相加举例【参考资料】 ...// 查询 select 1 主键,2 主键数量,3 个数 from 表名; select 1 主键,2 + 3 总数 from 表名; 【参考资料】 https://bbs.csdn.net/topics/390413029 ...
  • mysql数据库中把查询结果列合并分组显示(GROUP_CONCAT) 效果图 在数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 字段; 合并查询出的: select GROUP_CONCAT(查询的...
  • mysql数据库中如何把多数据合并成一
  • 数据库查询结果去重常用方法整理

    千次阅读 2020-03-11 20:21:34
    一般情况下,数据库去重复有以下那么三种方法: 第一种: 两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例: SELECT DISTINCT * FROM TABLE 使用 distinct: ...
  • 达梦 wm_concat函数,用于转行,逗号分隔 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据 SQL> ...
  • MySQL两个查询合并成一个结果

    千次阅读 2021-05-26 13:57:41
    MySQL 查询合并 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 注意:两个列表中的字段要一样才...
  • ![图片说明](https://img-ask.csdn.net/upload/201806/15/1529049192_856265.jpg) 表1字段A、B、C;表2字段D、E、F; 如何根据表1和表2信息,生成表3信息。
  • 如何将SQL查询出的两列合并成一显示,并用逗号隔开 先给出一个表 DROP TABLE IF EXISTS `apps`; CREATE TABLE `apps` ( `id` int NOT NULL AUTO_INCREMENT, `app_name` varchar(255) CHARACTER SET utf8 ...
  • select 查询结果 from 从哪张表查询 union all select 查询结果 from 从哪张表查询 练习: 将课程表及课程表1合并在一起 课程表1: 1dd4140cf5c4a6a767a6a9fef7c25111.png 课程表2: 27ba4b0014ac38ede67f84e5be8014...
  • Mysql、oracle、Sybase数据库两列合并成一的sql语句
  • 数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 字段; 合并查询出的: selectGROUP_CONCAT(查询的字段 separator ‘;’) from table group by 字段; ...
  • sql将查询结果将多列合并成一

    万次阅读 2017-03-29 14:08:43
    mysql: 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:47
    UNION多表查询讲解
  • MySql 将查询结果列合并成一行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...
  • 最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了数据库设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题: 现有表: G(GID, abID, AID, BID) A(AID, ANAME) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 181,501
精华内容 72,600
关键字:

数据库查询结果合并同列