mysql 类似wm concat_oracle的wm_concat()和mysql的group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别...
前言
标题几乎已经说的很清楚了,在oracle中,concat()函数和 “ || ” 这个的作用是一样的,是将不同列拼接在一起;那么wm_concat()是将同属于一个组的(group by)同一个字段拼接在一起变成一行。mysql是一样的,只不过mysql用的是group_concat()这个函数,用法是一样的,这里就不过多介绍了。大家可以直接戳这篇文章 了解 浅析MySQL中concat以及group_concat的使用
这里我就以oracle介绍为主了,mysql同样的方法使用,就是换一个函数就是了。
wm_concat()和concat()具体的区别
oracle中concat()的使用 和 oracle中 “ || ” 的使用
这两个都是拼接字段或者拼接字符串的功能。
oracle中:
concat只能连接两个字符串或者两个字段,|| 可以多次使用,拼接n个字符串或者字段。
select concat('aaa','bbb') from dual /*结果为:aaabbb*/
select 'aaa'||'bbb'||'ccc'||'ddd' from dual /*结果为:aaabbbcccddd*/
如果concat()拼接多个话,就会报错,
mysql中
concat()的使用,是可以连接多个字符串或者字段的。
select concat('aaa','bbb','ccc','ddd') from dual /*mysql中执行 结果为:aaabbbcccddd*/
wm_concat()的使用
我看了大多数博客对wm_concat()这个个函数的介绍,我觉得都介绍的不是很完美,他们都是简单的说 这个是合并列的函数,但是我总结的概括为:把同组的同列字段合并变为一行(会自动以逗号分隔)。什么意思呢,举个例子呗。
现在我有一张成绩表,如图,
stuid 同学学号 coursename 课程名称 score 课程成绩
说明一下,设计成绩表的时候,这里的coursename最好是设计成courseid,和课程表去关联,但是这里我就是测试,为了更简单的表达效果,所以这里暂时就以课程名称来设计了,希望大神不要喷我设计的表有问题哈,我数据库设计表也还是挺厉害的勒,嘿嘿,自恋一下。
问题:现在要将同一个同学的所有课程成绩以一行展示,sql怎么写呢?
/*简单的合并同一个同学的课程*/
select stuid,wm_concat(coursename)
from stu_score
group by stuid
我们再优化一下SQL,将成绩也放进去
/*同一个同学的课程+成绩*/
select stuid,wm_concat(coursename || '(' || score||')')
from stu_score
group by stuid
如果不想用逗号分隔,可以用replace函数替换逗号为你想要的分隔符号,
/*同一个同学的课程+成绩,指定想要的分隔符*/
select stuid,replace(wm_concat(coursename || '(' || score||')'),',','---')
from stu_score
group by stuid
mysql是一样的用法,把wm_concat 换成 group_concat()就可以啦,具体可以参考这篇文章的使用:浅析MySQL中concat以及group_concat的使用
不知道大家学会这个wm_concat()这个函数的用法了吗
参考文章:
感谢原作者的分享,让技术人能够更快的解决问题
本文分享 CSDN - 小小鱼儿小小林。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
mysql 类似wm concat_oracle的wm_concat()和mysql的group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别...相关推荐
- mysql 类似wm concat_oracle中有没有类似于mysql中的group_concat的函数?
11g及更高:使用listagg:SELECT col1, LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) "names"FROM ...
- 万网mysql管理_万网虚拟主机mysql/sql server数据库怎样通过DMS在线管理?
登录数据库 一.概述 DMS(原iDB Cloud)是一款访问管理云端数据的WEB服务,支持MySQL.SQL Server.PostgreSQL和ADS等数据源,覆盖RDS.ADS.TAE和万网等阿 ...
- mysql类似的数据库_MemSQL学习笔记-类似MySQL的数据库
http://gigaom.com/cloud/ex-facebookers-launch-memsql-to-make-your-database-fly/ -- 多主-从 http://www.m ...
- MySql类似Oracle的dual虚拟表
在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * f ...
- mysql proxies priv_Mysql 5.7.18 运用MySQL proxies_priv完成类似用户组管理案例分享
软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...
- mysql proxies priv_Mysql 5.7.18 利用 MySQL proxies_priv(模拟角色)实现类似用户组管理...
利用MySQL proxies_priv(模拟角色)实现类似用户组管理 角色(Role)可以用来批量管理用户,同一个角色下的用户,拥有相同的权限. MySQL5.7.X以后可以模拟角色(Role)的功 ...
- mysql 数据库安装命令_教你MySQL数据库的编译安装以及命令详解(5.7版本)
一.安装MySQL所需的环境依赖包 [root@localhost opt]# yum -y install gcc gcc-c++ make ncurses ncurses-devel bison ...
- 二进制的mysql怎么装_使用二进制演示MySQL安装步骤
使用二进制演示MySQL安装步骤 发布时间:2020-06-08 11:36:24 来源:51CTO 阅读:194 作者:三月 不知道大家之前对类似使用二进制演示MySQL安装步骤的文章有无了解,今天 ...
- mysql数据库引擎博客_2、MySQL常见数据库引擎及比较?
摘自: https://www.cnblogs.com/zhuifeng-mayi/p/9265075.html MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQ ...
最新文章
- 35. Search Insert Position
- 347. 前 K 个高频元素(哈希表)
- python中requests的常用方法_python3 Requests常用操作
- spark源码编译记录
- Rafy 框架-发布网页版用户手册
- 使用Stackblitz一分钟之内创建一个Angular应用
- Java总结:Spring5框架(1)
- live2dviewer android,live2dviewerex安卓版
- linux vim文本编辑器
- about Microsoft Office SharePoint Portal Server 2003
- 转 Silverlight开发历程—(画刷与着色之线性渐变画刷)
- 用决策树模型求解回归问题(regression tree)
- 设计模式--迭代器模式(C++实现)
- c++ DLL-DEF-LIB
- SFM图像三维重建(二)
- 二阶有源低通滤波器幅频特性
- 求当前时间的三种方法(Java)
- php blowfish 解密,php blowfish加密解密算法
- Camera2 三预览
- linux系统怎么连接显示器,Linux下笔记本外接显示器 · Eulerlee
热门文章
- android java函数_java – 在android中创建全局函数
- 微信公众号怎么快速导出一个月的文章数据
- http请求POST方式发送获得返回值
- Spring Boot——日志配置
- java自定义注解实现日志功能
- IoT -- (一) 物联网平台架构设计分析
- Java数据库篇3——SQL
- n个1组成的整数能被2013整除c语言,求大神解算法,“编写程序,求n至少为多大时,n个1组成的整数能被2013 整除。”...
- java内部类为什么使用很少_java内部类有什么好处?为什么需要内部类?
- python自动化_Python 实现Excel自动化办公上