首页 > 数据库 >Mysql && Oracle 纵向拼接,多行合并为一行

Mysql && Oracle 纵向拼接,多行合并为一行

时间:2023-06-01 19:31:58浏览次数:42  
标签:GROUP NAME cid stu && Mysql Oracle ORDER CONCAT

纵向合并

Mysql

GROUP_CONCAT函数用法:
GROUP_CONCAT( 合并的字段名 order by 排序字段 SEPARATOR 分割符)
方式一:只合并
GROUP_CONCAT( stu.NAME ) 
方式二:带排序
GROUP_CONCAT( stu.NAME ORDER BY s.score DESC ) 
方式三:带分割符
GROUP_CONCAT( stu.NAME ORDER BY s.score DESC SEPARATOR ',' )
-- 根据成绩排名 并使用,分割
SELECT
	s.cid,
	c.NAME,
	GROUP_CONCAT( stu.NAME ORDER BY s.score DESC SEPARATOR ',' ) 
FROM
	student stu
	LEFT JOIN score s ON s.sid = stu.id
	LEFT JOIN course c ON s.cid = c.id 
GROUP BY
	s.cid,
	c.NAME

Oracle

listagg within GROUP 用法:
listagg ( 合并的字段名, '分割符' ) within GROUP ( ORDER BY 排序字段 DESC )
-- 根据成绩排名 并使用,分割
SELECT
	s.cid,
	c.NAME,
	listagg ( stu.NAME, ',' ) within GROUP ( ORDER BY s.SCORE DESC ) 
FROM
	student stu
	LEFT JOIN score s ON s.sid = stu.id
	LEFT JOIN course c ON s.cid = c.id 
GROUP BY
	s.cid,
	c.NAME

标签:GROUP,NAME,cid,stu,&&,Mysql,Oracle,ORDER,CONCAT
From: https://blog.51cto.com/u_16085354/6397787

相关文章

  • mysql5.7配置文件详解
    8核心32G独立mysql服务器的配置文件如下:[client]port=3306socket=/data/mysql/mysql.sock[mysql]prompt="mysql[\d]>"no-auto-rehash[mysqldump]quick[mysqld]user=mysqlport=3306basedir=/usr/local/mysqldatadir=/data/mysqlsocket=/......
  • MySQL主从复制
    一,概述主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做》,从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL复制的......
  • SQLserver 与mysql中的varchar()类型关于存储汉字的个数;字符与字节的区别
    https://blog.csdn.net/qq_64314976/article/details/128604141https://www.cnblogs.com/chenmingjun/p/8118083.html今天遇到一个问题,mysql中的汉字,插入到sqlserver中报错,两边字段大小都是varchar(18)。汉字个数超过了9个,所以在SQLserver中报错我可以理解,因为1个汉字占用2个......
  • ‘dependencies.dependency.version‘ for mysql:mysql-connector-java:jar is missin
    项目使用的技术框架是SpringBoot,依赖管理工具是Maven,需要用到数据库所以引入了mysql-connector-java相关jar包。之前项目一直正常的,不会报错,最近更新了一下版本,项目启动的时候直接报错:[INFO]Scanningforprojects...[ERROR][ERROR]Someproblemswereencounteredwhilep......
  • MySQL及调优
    存储引擎MySQL中存在多种存储引擎,比如:InnoDB:1.支持事务;2.支持外键;3.同时支持行级别的锁和表级别的锁。适用场景:经常更新的表,存在并发读写或者有事务处理的业务场景。MyISAM:1.支持表级别的锁(插入更新操作会锁表);2.不支持事务;3.拥有较高的插入和查询速度。适用场景:只读类的数据......
  • Mybatis 数据库Mysql时间范围内数据查询非常慢的解决办法
    表中数据量过大,目前已有300万条,查询user_name数据速度非常慢,如果不使用索引,想优化sql来提高查询速度,在调试过程中发现,写sql查询数据库时,传入时间段查询部分为:<!--大于开始时间-->andsw.TIME>=to_date(CONCAT('2018-09-10','00:00:00'),'yyyy-mm-ddhh24:mi:ss')<!--小于结束......
  • mysql functions ,LAST_INSERT_ID() 或 自定义主键
    http://dev.mysql.com/doc/refman/5.6/en/information-functions.html LAST_INSERT_ID() 这个值如果各个table都有一个自增的id,那么各个table用各自的LAST_INSERT_ID()  自定义:#固定前缀(2位)+时间戳(13位)+随机数(7位)SELECTCONCAT('AB',#......
  • MySQL 8错误日志出现"The table /home/work/mysql_3306/tmp/#sqla2b_298b06_4d is fu
    ##############    了解MySQL8.0.26的错误日志出现"Thetable /home/work/mysql_3306/tmp/#sqla2b_298b06_4disfu11!"的bug,暂时通过修改临时表的存储引擎为内存引擎解决  MySQL8.0.13开始引入新的临时内存表引擎TempTable,并将其作为内存中创建临时表的默认存......
  • mysql聚合函数---总体聚合、总体累加、分组聚合、分组累加
    MySQL从版本8.0开始,才支持窗口函数,所以之前的版本分组累加需要构造sql语句来实现。数据:select*fromemp;一、mysql总体聚合函数min()、max()、count()、sum()、avg()selectcount(ename),max(sal),min(sal),sum(sal),round(avg(sal),2)fromemp;二、mysql总体累加/总体累计数量......
  • Linux软件安装--二进制发布包安装、rpm发布包安装(案例:jdk和mysql安装)
    Linux软件安装的4种方式一、二进制发布包指软件已经根据平台编译并且打包,拿到这个包后解压并配置环境变量,如jdk包、mysql包、Tomcat包。示例:二进制发布包安装jdk。示例:二进制发布包安装jdk1.获取安装包1).直接从linux网上下载安装包-->wget https://download.oracle.com/otn-pu......