zoukankan      html  css  js  c++  java
  • SQL 合并查询 把列数据转为行

    表:

    姓名  语文    数学     英语

    张三    75    90       85
    李四    80     85       85


    查询结果

    姓名    成绩    科目

    张三    90      数学
    李四    85      数学,英语

    select * into CJ
    from(
    select '张三' as 姓名,75 as 语文,90 as 数学,85 as 英语
    union
    select '李四' as 姓名,80 as 语文,85 as 数学,85 as 英语
    ) a
    ----------------
    select 姓名,max(成绩) as 成绩,
     (select case when 语文=MAX(成绩) then '语文,' else '' end+
             case when 数学=MAX(成绩) then '数学,' else '' end+
             case when 英语=MAX(成绩) then '英语' else '' end
     from CJ ab where ab.姓名=a.姓名) as 科目
    from
    (
    select 姓名,语文 as 成绩,'语文' 科目
    from CJ
    union all
    select 姓名,数学 as 成绩,'数学' 科目
    from CJ
    union all
    select 姓名,英语 as 成绩,'英语' 科目
    from CJ
    ) a group by a.姓名


     

  • 相关阅读:
    Dao层
    I/O流
    导入第三方jar包
    怎么使用log4j
    JDBC访问数据库的步骤
    抽象和封装
    JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法
    ResultSet next方法
    实体类(entity)的作用
    接口的作用
  • 原文地址:https://www.cnblogs.com/junjie94wan/p/2419160.html
Copyright © 2011-2022 走看看