MySQL、DM 行转列及字段去重(Group_Concat())

摘要:
MySQL转换为DreamSQL的语法存在一些问题。MySQL_Concat(expr)函数中的组支持内部用户定义的连接分隔符,使用时只需添加“分隔符”;默认情况下,WM用于连接Damon数据库(DM)或OSCAR数据库_ Concat(expr),默认逗号(英文逗号)连接,需要使用replace(str,replace(name,

      最近在使用数据库迁移适配,由MySQL 库迁移到达梦数据库,其中进行行转列时,MySQL转换达梦sql语法有些问题,特记录。

      在MySQL 下有Group_Concat(expr)  ,在达梦及神通数据库下如何转换,有没有同样或者类似功能的函数呢?请看下面记录。

      MySQL中 Group_Concat(expr)  函数支持 内部自定义连接分割符,使用时只需要 添加 SEPARATOR ';' 即可(表示使用分号符连接)。默认逗号连接

      达梦数据库(DM) 或着神通数据库(oscar) 使用 WM_Concat(expr) ,默认 逗号(英文逗号) 连接,如果使用自定义连接符,需要使用 replace(str,exp1,exp2) 函数,示例:replace(name,',',';')  使用 分号符 替换原来的 逗号符。

 

 

  MySQL 中行转列常用 函数:Group_Concat(expr):

    示例-表A :select name ,age,sex ,favorite from student      ---操作合并示例  favorite 字段  【favorite 字段值:1、篮球,2、足球,3、篮球,4、游泳】

    MYSQL: select Group_Concat(favorite) from student where name='zhangsan';       ----最终结果 favorite 中字段以【,】 连接 结果示例:篮球,足球,篮球,游泳

    去重:select Group_Concat(DISTINCT  facorite) from student where name='zhangsan';   ----最终结果 favorite 中字段以【,】 连接 结果示例:篮球,足球,游泳

    去重后以【;】连接:select Group_Concat(DISTINCT  facorite SEPARATOR ';')  from student where name='zhangsan'; ----最终结果 favorite 中字段以【;】 连接 结果示例:篮球;足球;游泳

 

  DM 中行转列/与MYSQL中同样作用 函数:WM_Concat(expr):

    示例(以MySQL中sql表示例):select name ,age,sex ,favorite from student      ---操作合并示例  favorite 字段  【favorite 字段值:1、篮球,2、足球,3、篮球,4、游泳】

    DM: select WM_Concat(favorite) from student where name='zhangsan';       ----最终结果 favorite 中字段以【,】 连接 结果示例:篮球,足球,篮球,游泳

    去重:select WM_Concat(DISTINCT  facorite) from student where name='zhangsan';   ----最终结果 favorite 中字段以【,】 连接 结果示例:篮球,足球,游泳

    去重后以【;】连接:select  replace(WM_Concat(DISTINCT  facorite)‘,’,‘,’  )from student where name='zhangsan'; ----最终结果 favorite 中字段以【;】 连接 结果示例:篮球;足球;游泳

 

  注:神通数据库中行转列/与MySQL 中合并字符串函数一致的 也可以使用 WM_Concat(expr):  目前还没有使用神通数据库,不过也快了,使用了再更新。

  

  以上为本次记录,后期继续更新。转载请注明出处,感谢!如有不合理之处,请大家多多指教。

  如果您觉得本文对您有帮助,欢迎点击收藏”按钮!(/:微笑)欢迎转载,转载请注明出处

免责声明:文章转载自《MySQL、DM 行转列及字段去重(Group_Concat())》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring mvc出现 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'endtime'SQL语句基础(二)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于sql server 2008 R2中遇到的sql server 代理启动不了的解决过程

终于对数据库服务器进行升级,操作系统升级为server 2008 数据库为sql server 2008 R2 升级为后需要把原来的数据库作业也迁移过来,发现数据库作业老是启动不了,在SQL Server Management Studio、SQL Server 配置管理器中server 代理、服务中的SQL Server 代理 (MSSQLSERVER)...

Oracle查看和修改连接数

  1.查询数据库当前进程的连接数:   select count(*) from v$process;   2.查看数据库当前会话的连接数:   elect count(*) from v$session;   3.查看数据库的并发连接数:   select count(*) from v$session where status='ACTIVE';  ...

c#调用存储过程两种方法

摘要 存储过程的调用在B/S系统中用的很多。传统的调用方法不仅速度慢,而且代码会随着存储过程的增多不断膨胀,难以维护。新的方法在一定程度上解决了这些问题。   关键词 ASP.NET;存储过程     在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作。调用存储过程实现数据库操作使很...

MySQL5使用Innodb引擎时如何设置数据文件按表存储

在Innodb引擎中,数据库的表可以共享存储空间也可以按表单独存储,共享存储空间虽然看起来简洁干净,但是从管理和运维的角度的看这种方式不可取。首先在同一个MySQL服务器下得不通数据库的表都会被存放于一个文件中,这个文件不会以为数据库某个表或者某些数据的删除二进行收缩,当数据库很多并且插入操作频繁的情况下,共享存储文件会增长的很快很大。如果数据库要做迁移,...

PHP解决网站大流量与高并发

1:硬件方面   普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的。主要影响服务器的速度 有:网络-硬盘读写速度-内存大小-cpu处理速度。 2:软件方面     第一个要说的就是数据库   首先要有一个很好的架构,查询尽量不用* 避免相关子查询 给经常查...

Android中数据库的操作流程详解

Android中数据库的操作方法: 1.Android平台提供了一个数据库辅助类来创建或打开数据库。 这个辅助类继承自SQLiteOpenHelper类。继承和扩展SQLiteOpenHelper类主要做的工作就是重写下面两个方法。 (1).onCreate(SQLiteDatabase db) : A.当数据库被首次创建时(用户初次使用软件时)运行该方...