sql将列显示为行

来源:互联网 发布:nginx 静态服务器缓存 编辑:程序博客网 时间:2024/05/16 17:12

写这篇文章的时候参考的是《sql hacks》,用的是sql server 2008


很多时候excel里面的表都是这样的:

姓名   高数   英语   数学

小明    89      56      67

小红     77     66     99

小米     89   



create  table  tbGradeIn (    student  varchar(10)  ,     gaoshu int ,     yingyu int ,     yuwen int      )insert into tbGradeIn(student ,  gaoshu ,  yingyu , yuwen )values ( '小明' , 89 , 56 , 67) , ('小红' ,  77 , 66 , 99 ) insert into  tbGradeIn (student , gaoshu)values('小米'  , 89)



导入数据库之后就变成了

姓名   高数   英语   数学

小明    89      56      67

小红     77     66     99

小米     89     null   null 



但是这样并不规范,应改成:

姓名   课程    分数

小明   高数    89

小明    英语    56

*****



就是将行显示为列!!下面有种解决方法:

select  student , '高数'  ,  gaoshu  from tbGradeIn union select  student , '英语' , yingyu from tbGradeInunion select student , '语文' , yuwen from tbGradeIn 


原创粉丝点击