MySQL 的 GROUP_CONCAT见:http://www..com/appleat/archive/2012/09/03/2669033.html

oracle中的wm_concat 见:https://blog..net/njdxtj/article/details/78625571

MySQL 部分:

一、CONCAT()函数

CONCAT()函数用于将多个字符串连接成一个字符串。

使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为

+----+--------+

| id | name   |

+----+--------+

|  1 | BioCyc |

+----+--------+

1、语法及使用特点:

CONCAT(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。可以有一个或多个参数。

2、使用示例:

SELECT CONCAT(id, ‘,’, name) AS con FROM info LIMIT 1;返回结果为

+----------+

| con      |

+----------+

| 1,BioCyc |

+----------+

SELECT CONCAT(‘My’, NULL, ‘QL’);返回结果为

+--------------------------+

| CONCAT('My', NULL, 'QL') |

+--------------------------+

| NULL                     |

+--------------------------+

3、如何指定参数之间的分隔符

使用函数CONCAT_WS()。使用语法为:CONCAT_WS(separator,str1,str2,…)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

如SELECT CONCAT_WS('_',id,name) AS con_ws FROM info LIMIT 1;返回结果为

+----------+

| con_ws   |

+----------+

| 1_BioCyc |

+----------+

SELECT CONCAT_WS(',','First name',NULL,'Last Name');返回结果为

+----------------------------------------------+

| CONCAT_WS(',','First name',NULL,'Last Name') |

+----------------------------------------------+

| First name,Last Name                         |

+----------------------------------------------+

二、GROUP_CONCAT()函数

GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。

使用表info作为示例,其中语句SELECT locus,id,journal FROM info WHERE locus IN('AB086827','AF040764');的返回结果为

+----------+----+--------------------------+

| locus    | id | journal                  |

+----------+----+--------------------------+

| AB086827 |  1 | Unpublished              |

| AB086827 |  2 | Submitted (20-JUN-2002)  |

| AF040764 | 23 | Unpublished              |

| AF040764 | 24 | Submitted (31-DEC-1997)  |

+----------+----+--------------------------+

1、使用语法及特点:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]

[SEPARATOR str_val])

在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。

SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR "" 完全地移除这个分隔符。

可以通过变量 group_concat_max_len 设置一个最大的长度。在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;

如果最大长度被设置,结果值被剪切到这个最大长度。如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;

2、使用示例:

语句 SELECT locus,GROUP_CONCAT(id) FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 的返回结果为

+----------+------------------+

| locus    | GROUP_CONCAT(id) |

+----------+------------------+

| AB086827 | 1,2              |

| AF040764 | 23,24            |

+----------+------------------+

语句 SELECT locus,GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '_') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回结果为

+----------+----------------------------------------------------------+

| locus    | GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '_') |

+----------+----------------------------------------------------------+

| AB086827 | 2_1                                                      |

| AF040764 | 24_23                                                    |

+----------+----------------------------------------------------------+

语句SELECT locus,GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回结果为

+----------+--------------------------------------------------------------------------+

| locus    | GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') |

+----------+--------------------------------------------------------------------------+

| AB086827 | 2, Submitted (20-JUN-2002). 1, Unpublished                               |

| AF040764 | 24, Submitted (31-DEC-1997) . 23, Unpublished                            |

+----------+--------------------------------------------------------------------------+

oracle中的wm_concat:

在日常的数据查询过程中,经常遇到一条信息分多条记录存储,并以同一个ID关联的情况,比如常见的房产证权利人信息,因为共有权人可能有很多,不可能把所有的权利人都放到权利人表的权利人字段,把所有权利人的证件号都放到权利人证件号字段,所以在数据库设计时候,会采用一个权利人一条记录,并以权利ID关联的方式存放。

但是在数据查询时候,有时候又希望将所有权利人信息一起展示,这里可能就会用到Oracle的wm_concat函数

1.示例数据

2. 示例语句

select qlrid,wm_concat(qlr) as qlr,wm_concat(qlrzjh) as qlrzjh from qlr t group by qlrid;

运行后的返回结果根据oracle的版本不同而会字段类型不同,在oracle11g中返回clob型,在oracle10g中返回varchar型

3. 通用版本语句

select qlrid,to_char(wm_concat(qlr)) as qlr,to_char(wm_concat(qlrzjh)) as qlrzjh from qlr t group by qlrid;

mysql的wm_concat函数_oracle中的wm_concat 对应 MySQL 的 GROUP_CONCAT相关推荐

  1. mysql中tonumber函数_oracle中的to_number在mysql中的转换

    [svn]SSL error: A TLS warning alert has been received的解决方法 第一次用svn(>_ access数据库连接问题 使用Visual Stud ...

  2. mysql中sign函数_Oracle中sign函数和decode函数的使用

    在逻辑编程中,经常用到If ndash; Then ndash;Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法 1.比较大小函数SIGN sign(x)或者Si ...

  3. mysql 字符串 空格函数_mysql中的去除空格函数

    (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例:update `ne ...

  4. mysql的concat函数_MySQL中concat函数(连接字符串)

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制 ...

  5. mysql输出max函数_MySQL中的max()函数使用教程

    MySQL的max()函数是用来找出一个记录集中的最大值记录. 要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl ...

  6. mysql 排序开窗函数_MySQL中实现开窗函数

    一.概述 row_number是数据库中常用的一个开窗函数,可以实现数据分区编号的功能,然而MySQL并不支持开窗函数.本文介绍了在MySQL中实现开窗函数的方法. 二.经典开窗函数 首先准备基础数据 ...

  7. mac mysql使用_在Mac中安装和使用MySQL

    下载安装MySQL 在官网下载MySQL 进入官网后可以看到有多个版本可选: Oracle MySQL Cloud Service 基于企业版数据库的云服务 MySQL Enterprise Edit ...

  8. kubernetes中mysql乱码_在kubernetes中部署tomcat与mysql集群-Go语言中文社区

    在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础: 1. 已安装.配置kubernetes 2. 集群中有tomcat与mysql容器镜像 3. 有docker基础 具 ...

  9. 组态中怎么使用mysql数据库_组态王中PLC数据连接MySQL数据库教程

    操作步骤: ①     确定中控室电脑连网,并且安装MySQL环境,下载地址如下:https://www.mysql.com/downloads/ ②     修改win MySQL服务信息(最好修改 ...

最新文章

  1. Parallel Python实现程序的并行多cpu多核利用【pp模块】
  2. java 判断crontab_crontab详解
  3. android数据流分类,【Android工程之类】1 MVVM架构 - MVVM与单向数据流
  4. 比较排序算法的时间复杂度 c语言,c语言四种排序算法时间复杂度比较(10页)-原创力文档...
  5. c++心形代码_c语言心形告白代码实现
  6. ns2相关学习——tcl脚本编写(1)
  7. V4L2 获取设备支持的分辨率
  8. java带参数的构造方法_java练习本(20190603)
  9. OpenStack部署(未完成)
  10. mysql blast2go_blast2go本地化教程
  11. nuc8i7beh安装linux随机重启,指南:nuc8i5beh安装黑苹果的教程,接近完美运行
  12. 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  13. 用js写卡牌游戏(五)
  14. CAD Express Tools下载与简介
  15. 黑马程序员-JS基础-移动端网页特效
  16. 用C++操作Excel
  17. 李航老师新作《机器学习方法》上市了!附购买链接
  18. likeshop外卖点餐系统【100%开源无加密】
  19. 使用MD.ai标注医学图像及covid-19数据集标注
  20. div +css 纵向导航

热门文章

  1. 一个简易的51单片机串口接收和发送程序
  2. 专硕平均分393分!重庆大学计算机学院
  3. python的五个特点介绍
  4. AKH-0.66 MP-60×50 系列电流互感器(安科瑞-卓宋兰)
  5. 在线病毒分析工具评测试用
  6. 访问ChatGPT(openai)出现Access denied(拒绝访问)或则429 You are being rate limited.(429 您受到速率限制)
  7. Android开发基础之控件WebView
  8. 苹果怎样打开照相快捷键(苹果屏幕照相机快捷键怎么用)
  9. 条件互信息(conditional mutual information,CMI)
  10. 我看Facebook Libra,让子弹飞一会。