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


          最近在使用数据库迁移适配,由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):  目前还没有使用神通数据库,不过也快了,使用了再更新。

      

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

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

  • 相关阅读:
    js兼容性问题总结
    style设置/获取样式的问题 和 offsetWidth/offsetHeight的问题
    常用SQL总结
    完美运动框架,兼容性好,可多次调用
    JS—实现拖拽
    java设计模式——享元模式
    java设计模式——适配器模式
    java设计模式——装饰者模式
    java设计模式——外观模式(门面模式)
    java设计模式——单例模式(三)
  • 原文地址:https://www.cnblogs.com/skyheaving/p/14188681.html
Copyright © 2020-2023  润新知