zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    优化MySchool数据库(存储过程)
    优化MySchool数据库(事务、视图、索引)
    优化MySchool数据库(四)
    优化MySchool数据库(三)
    SQLAchemy
    python操作mysql
    python队列
    零碎知识
    super深究
    Python操作RabbitMQ
  • 原文地址:https://www.cnblogs.com/xinyus/p/3368649.html
Copyright © 2011-2022 走看看