最近在使用数据库迁移适配,由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())的更多相关文章

  1. 关于MySQL的行转列的简单应用(二)---group函数

    MySQL的行转列.列转行.连接字符串  concat.concat_ws.group_concat函数用法使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一 ...

  2. mysql之行转列与列转行

    mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作 ...

  3. Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总

    mysql数据处理记录(使用的 Workbench) 生成随机数 逗号或分号拼接的字符串分割成多行 多行数据转化成用逗号拼接的字符串 将A表的数据添加到B表 一.生成随机数 生成18位:(19位就加颗 ...

  4. mysql动态行转列

    测试数据 DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `id` ) NOT NULL AUTO_INCREMENT, `class` ) ...

  5. mysql实现行转列功能

    实现从图一转行成图二的功能: 图一: 图二: 建表语句: CREATE TABLE `t_user_score` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT '主 ...

  6. 关于MySQL的行转列的简单应用

    sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...

  7. mySQL的行转列

    因为MYSQL里边没有  PIVOT      现记录:   原表格:   mysql语句: SELECT MAX(CASE WHEN corol='红' THEN NUM else 0 END) A ...

  8. mysql 动态行转列

    表结果:create table user( id int , username ), create_time datetime, type int ) insert into user (`id`, ...

  9. 部分替换mysql表中某列的字段

    UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` ...

  10. mysql 的行转列 PIVOT 的使用

    语句:SELECT DataDate , PropertyText , DataValue FROM RPT_ReportProperty p WITH ( NOLOCK ) JOIN RPT_Rep ...

随机推荐

  1. Asp.net WebApi + EF 单元测试架构 DbContext一站到底

    其实关于webapi和Ef service的单元测试我以前已经写过相关文章,大家可以参考: Asp.net WebAPI 单元测试 单元测试 mock EF 中DbContext 和DbSet Inc ...

  2. spring boot 数据库连接池配置

    HikariCP 连接池配置: http://stackoverflow.com/questions/29650501/hikaricp-starts-when-mvn-spring-bootrun- ...

  3. NET基础课--JIT编译器如何工作1

    1..Net运行时调用JIT编译器,用来把由C#编译器生成的IL指令编译成机器代码.这一任务在应用程序的运行期间是分步进行的.JIT并不是在程序一开始就编译整个应用程序,取而代之的是,CLR是一个函数 ...

  4. 企业级IM应该帮助员工提高绩效,避免无关的信息干扰

    很多上班族一定熟悉如下的场景: 您早上上班一打开QQ,就弹出一个新闻集成窗口,随便点开看看吧,这一点不要紧,您就被一个又一个的链接带着逛下去了.等回过神来要工作的时候,发现已经在这些八卦新闻上浪费了一 ...

  5. php 生成.txt文件

    $content =array('color'=> array('blue','red','green'),'size'=> array('small','medium','large') ...

  6. manjaro安装及设置

    因我的笔记本(联想的拯救者)昨晚打开后什么都还没做就被更新系统“抢走”了画面导致按什么都不管用 所以就想起能不能不用win系统,都知道linux比win稳定,so....就找到了manjaro.以下是 ...

  7. zabbix报错排错大全

    zabbix报错 https://www.cnblogs.com/losbyday/category/876878.html作者总结的很全棒 1.在启动zabbix-agent 时系统日志输出 PID ...

  8. ant常用的内置 task转自https://www.cnblogs.com/baicj/archive/2015/12/21/5063608.html

    ant 例如: <target name="callProjectB"> <echo message="In projectA calling proj ...

  9. Python PEP 8 编码规范中文版

    原文链接:http://legacy.python.org/dev/peps/pep-0008/ 转发链接:https://blog.csdn.net/ratsniper/article/detail ...

  10. 版本控制工具git

    公司要求用git,感觉不如svn好使,还是命令行的,暂时记录一下. 服务器是在linux上可以直接安装.我是虚拟机centos6.9版本.yum install -y git 查看版本号是git -- ...