sqlserver2008中的Pivot函数
如何实现枢轴功能 我有一张数据表sqlserver2008中的Pivot函数,sql,pivot,Sql,Pivot,如何实现枢轴功能 我有一张数据表 Day Period subject fromtime totime ---------------------------------------------- Monday 1st English 9:30 10:15 Monday 1st English 9:30 10:15 Monday 5th English 1:30 2:20 Monday 8th English
Day Period subject fromtime totime
----------------------------------------------
Monday 1st English 9:30 10:15
Monday 1st English 9:30 10:15
Monday 5th English 1:30 2:20
Monday 8th English 3:40 4:30
但我需要的格式
day period(1st) 2nd 3rd...... 5th... 8th
--------------------------------------------------------------------------
Monday 1st nill nill 5th 8th
english english english
Tuesday .......
就这样
如何执行pivot函数以获取此格式
请帮帮我
我已经使用了我的查询
SELECT DAY, [1st],[2nd],[3rd],[4th], [5th],[6th],[7th], [8th]
FROM
(
SELECT Day, Period, Subject,FromTime,ToTime
FROM StaffTimeTableEntry
) up
PIVOT (Min(Subject) FOR Period IN ([1st],[2nd],[3rd],[4th], [5th],[6th],[7th], [8th])) AS pvt
order by Day
结果是
day 1st 2nd 3rd 4th 5th 6th 7th 8th
----------------------------------------------------------------------------------
Friday NULL NULL NULL NULL NULL NULL English NULL
Monday NULL NULL NULL NULL English NULL NULL NULL
Monday NULL NULL NULL NULL NULL NULL NULL English
Monday English NULL NULL NULL NULL NULL NULL NULL
Saturday NULL NULL NULL NULL NULL English NULL
Thursday NULL NULL NULL English NULL NULL NULL
Tuesday NULL English NULL NULL NULL NULL NULL NULL
Tuesday NULL NULL NULL NULL NULL English NULL NULL
Wednesday NULL NULL NULL NULL NULL English NULL
但这里我也有3张周一的唱片,而不是一张周一的唱片
如何在一天内获得一条记录…?试试以下方法:
SELECT DAY, [1st],[2nd],[3rd],[4th], [5th],[6th],[7th], [8th]
FROM
(
SELECT Day, Period, Subject --,FromTime,ToTime
FROM StaffTimeTableEntry
) up
PIVOT (Min(Subject) FOR Period IN ([1st],[2nd],[3rd],[4th], [5th],[6th],[7th], [8th])) AS pvt
order by Day
PIVOT运算符未“使用”的任何列将保留在最终结果集中,增加基数。但这一天是以这种形式出现的,周五周一周六周四周三,但我需要按天排序。
按案例日期排序,当“周一”时,然后按1当“周二”,然后按2等。或者找到某种方法将一天转换为日期,然后按日期排序。