如何获取当天的小时数,当小时是sql中的列到行?

时间:2017-11-07 18:17:00

标签: sql

我的表中有这些数据:

Class         Monday  Tuesday  Wednesday  Thursday  Friday
--------------------------------------------------------------------
class 1       8:00    12:00    8:00       8:00      10:00
class 2       7:00    15:00    7:00       NULL      7:00
class 3       11:00   11:00    12:00      NULL      NULL

我需要获得以下信息

Class         Day        Hour
--------------------------------------------------------------------
class 1       Monday      8:00
class 1       Tuesday    12:00
class 1       Wednesday   8:00
class 1       Thursday    8:00
class 1       Friday     10:00

class 2       Monday      7:00
class 2       Tuesday    15:00
class 2       Wednesday   7:00
class 2       Friday      7:00

class 3       Monday     11:00
class 3       Tuesday    11:00
class 3       Wednesday  12:00

感谢您的回答和帮助,我非常感谢

注意:查询结果将显示在excel中

2 个答案:

答案 0 :(得分:0)

您需要的是一个名为UNPIVOT的操作,它将列旋转到行。假设您使用的是SQL Server,则可以使用类似这样的查询生成所需的结果:

SELECT Class, Day, Hour
FROM classes UNPIVOT (Hour FOR Day IN (Monday, Tuesday, Wednesday, Thursday, Friday)) u

答案 1 :(得分:0)

选择* 从表 按班级排序,周一,周二,周三,周四,周五