sql将列显示为行

写这篇文章的时候参考的是《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 tbGradeIn
union 
select student , '语文' , yuwen from tbGradeIn 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值