首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个,动态行转列的列名能不能按一定顺序排序?解决思路

2013-01-25 
这个,动态行转列的列名能不能按一定顺序排序?本帖最后由 mjjing 于 2013-01-08 17:55:55 编辑declare @s n

这个,动态行转列的列名能不能按一定顺序排序?
本帖最后由 mjjing 于 2013-01-08 17:55:55 编辑

declare @s nvarchar(4000)set @s=''Select     @s=@s+','+quotename([Course])+'=max(case when [Course]='+quotename([Course],'''')+' then [Score] else 0 end)'from Class group by[Course]exec('select [Student]'+@s+' from Class group by [Student]')  


用的是这个,比如 动态列是日期,有没有办法按日期顺序牌列?
[解决办法]
试试
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + QUOTENAME([Course]) + '=max(case when [Course]='
        + QUOTENAME([Course], '''') + ' then [Score] else 0 end)'
FROM   (SELECT * FROM  Class ORDER BY [日期]) Class
GROUP BY [Course]
EXEC('select [Student]'+@s+' from Class group by [Student]')
  
[解决办法]
declare @s nvarchar(4000)
set @s=''
Select     @s=@s+','+quotename(CONVERT(varchar(10),日期列,120))+'=max(case when CONVERT(varchar(10),日期列,120)='+quotename([日期列],'''')+' then [Score] else 0 end)'
from Class 
group by CONVERT(varchar(10),日期列,120)
order by Min(日期列)

热点排行