• SqlServer 动态行转列


     

    有如下数据: (不一定只有这几个类别)

        姓名    科目        成绩        

        a        subject1    83

        a        subject2    74

        a        subject3    93

        b        subject1    70

        b        subject2    80

        b        subject3    90

      ....................

    现要得到这样的数据

    姓名    subject1    subject2    subject3  .......

    a        83            74        93

    b        70            80        90

    可以使用如下sql达到效果

        declare @v_sql varchar(8000)

       set @v_sql= 'select 姓名 '

       select @v_sql=@v_sql+' , max(case 科目 when '''+ subject + ''' then 分数 else 0 end ) '+subject from ( select distinct 科目 as subject from table )  a 

        set @v_sql =' from table group by 姓名 '

        exec(@v_sql)

  • 相关阅读:
    Django -- 多对多建表增删改查
    Django -- 一对多建表增删改查
    Django -- 图书管理系统
    Django -- 基础
    前端 -- jQuery
    前端 -- JavaScript-BOM
    前端 -- JavaScript-DOM
    前端 -- JavaScript基础
    前端 -- HTML块级标签
    linux目录结构
  • 原文地址:https://www.cnblogs.com/xinyus/p/3368649.html
Copyright © 2020-2023  润新知