sql中交叉表的实现

  1. 静态的交叉表
  2. select name,sum(case subject when '数学' then source else 0 end) as '数学',  
  3.   
  4. sum(case subject when '英语' then source else 0 end) as '英语',  
  5.   
  6. sum(case subject when '语文' then source else 0 end) as '语文'  
  7.   
  8. from test  
  9.   
  10. group by name  

动态的交叉表

    • declare @sql varchar(8000)  
    • set @sql = 'select name,'  
    • select @sql = @sql + 'sum(case subject when '''+subject+'''  
    • then source else 0 end) as '''+subject+''','  
    • from (select distinct subject from student1) as a  
    • print(@sql)  
    • print('------------------------------------------------------------------------------')  
    • select @sql = left(@sql,len(@sql)-1) + ' from student1 group by name'  
    • print(@sql)  
    • exec(@sql)  
    • go 

//仅限于个人记忆~网上还有其他更好的资料~

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值