zoukankan      html  css  js  c++  java
  • SQLServer 实现行转列

    create table AllScore(
    
    id int identity(1,1) primary key,--主键
    stu_name varchar(20),--学生名
    category varchar(20),--学科
    record float,--成绩
    )
    /*插入数据*/
    insert into AllScore(stu_name,category,record)values('刘德华','Chinese',100)
    insert into AllScore(stu_name,category,record)values('刘德华','English',95)
    insert into AllScore(stu_name,category,record)values('刘德华','Mathmatics',98)
    
    insert into AllScore(stu_name,category,record)values('施瓦辛格','Chinese',90)
    insert into AllScore(stu_name,category,record)values('施瓦辛格','English',95)
    insert into AllScore(stu_name,category,record)values('施瓦辛格','Mathmatics',14)
    
    insert into AllScore(stu_name,category,record)values('太上老君','Chinese',70)
    insert into AllScore(stu_name,category,record)values('太上老君','English',95)
    insert into AllScore(stu_name,category,record)values('太上老君','Mathmatics',57)
    
    insert into AllScore(stu_name,category,record)values('毕达哥拉斯','Chinese',60)
    insert into AllScore(stu_name,category,record)values('毕达哥拉斯','English',95)
    insert into AllScore(stu_name,category,record)values('毕达哥拉斯','Mathmatics',68)
    
    insert into AllScore(stu_name,category,record)values('柏拉图','Chinese',60)
    insert into AllScore(stu_name,category,record)values('柏拉图','English',95)
    insert into AllScore(stu_name,category,record)values('柏拉图','Mathmatics',78)
    
    insert into AllScore(stu_name,category,record)values('亚里士多德','Chinese',40)
    insert into AllScore(stu_name,category,record)values('亚里士多德','English',22)
    insert into AllScore(stu_name,category,record)values('亚里士多德','Mathmatics',25)
    
    insert into AllScore(stu_name,category,record)values('卢梭','Chinese',40)
    insert into AllScore(stu_name,category,record)values('卢梭','English',50)
    insert into AllScore(stu_name,category,record)values('卢梭','Mathmatics',78)
    
    insert into AllScore(stu_name,category,record)values('老庄','Chinese',100)
    insert into AllScore(stu_name,category,record)values('老庄','English',20)
    insert into AllScore(stu_name,category,record)values('老庄','Mathmatics',98)
    
    -----开始行转列-------
    declare @sql nvarchar(4000)
    set @sql='Select stu_name '
    Select @sql=@sql+',sum(case when category='''+category+ ''' then Record else 0 end) As '''+category+''''
    From AllScore Group By category
    set @sql=@sql+' From AllScore Group By stu_name'
    Print @sql
    execute sp_executesql @sql
  • 相关阅读:
    XOR加密作业
    2019-2020-1 20191312《信息安全专业导论》第六周学习总结
    欧几里得算法及其伪代码
    2019-2020-1 20191312《信息安全专业导论》第五周学习总结
    2019-2020-1 20191312《信息安全专业导论》第四周学习总结
    寻找你的黑客偶像作业
    2019-2020-1 20191312 《信息安全专业导论》第三周学习总结
    罗马数字转化为阿拉伯数字
    IEEE754 浮点数
    2019-2020-2 网络对抗技术 20175211 Exp6 MFS基础应用
  • 原文地址:https://www.cnblogs.com/HCCZX/p/2855686.html
Copyright © 2011-2022 走看看