zoukankan      html  css  js  c++  java
  • 数据库多行数据合并一行(sqlserver、Oracle、Mysql)

    我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如:

    表结构:

    create table t_user_course(username varchar(32),coursename varchar(100));

         

    需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中显示,效果如下:

       

    以下分别总结了sqlserver、Oracle、MySQL数据的处理SQL:

    1.sqlserver:

    SELECT
        username,
        coursename= (
                   STUFF(
                        (SELECT ',' + coursename
                         FROM t_user_course
                         WHERE username= A.username
                         FOR xml path('')
                        ),1,1,''
                        )
                     )
    FROM t_user_course A
    GROUP by cm_pk1;

    2.Oracle(适用于oracle 12c以下版本)

    select username,wm_concat(to_char(coursename)) from t_user_course group by username;

    3.Mysql

    select username,group_concat(coursename Separator ',') as coursename from t_user_course group by username;

    ---------------------
    作者:alicewang99
    来源:CSDN
    原文:https://blog.csdn.net/alicewang99/article/details/80890665

  • 相关阅读:
    linux学习笔记---grep
    node.js读取到的文件列表
    node 按行读取文件
    NodeJS遍历文件生产文件列表
    常用linux命令行
    2017/11/13
    Linux下输出 excel文件
    位映射对大数据的排重
    算法中的渐进记号
    KMP算法原理
  • 原文地址:https://www.cnblogs.com/ryelqy/p/10861173.html
Copyright © 2011-2022 走看看