zoukankan      html  css  js  c++  java
  • Sql 动态行转列

    SQL动态行转列 

    关键字 :pivot


    复杂例子:(使用了连表查询)

    看一下图



    语句:

    --Student
    select * from [dbo].[Student]
    --StudentScore
    select * from [dbo].[StudentScore]
    
    --查询每天的加减分情况
    DECLARE @sql VARCHAR(8000),@col varchar(1000)
    set @col=(select distinct '['+cast(createTime as nvarchar(100))+'],' from StudentScore for xml path(''))
    set @col=LEFT(@col,LEN(@col)-1)
    SET @sql = 'select *  
    from (select s.name,s.score,grade,createTime from StudentScore ss
    		join Student s on ss.sid=s.id
    	) as tab  
    pivot(sum(grade) for createTime in('+@col+'))as p  '
    EXEC(@sql)


    简单例子:

    给一个静态的,并且值查询StudentScore表



    
    
    select *  
    from 
    	(select [sid],grade,createTime from StudentScore) as tab  
    pivot(sum(grade) for createTime in([2017-09-04],[2017-09-05],[2017-09-06]))as p  
    
    


  • 相关阅读:
    线段树
    2016.9.4
    使用CSS代码修改博客模板
    爬虫
    PHP初学[DAY2]
    2016.8.23
    一个自动设置游戏房间的脚本
    可逆矩阵生成
    #2284. 接水果(fruit)
    #3762. 有趣的数(number)
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/9779849.html
Copyright © 2011-2022 走看看