我的主题可能不是最好的,但这是我正在尝试做的事情:
我有一个包含开始和结束时间的表格:
Event Start End
-------------------------
event1 2:30 PM 3:00 PM
event2 3:05 PM 3:30 PM
event3 2:45 PM 3:10 PM
Run Code Online (Sandbox Code Playgroud)
我想编写一个SQL命令(在Oracle中),这将导致:
Event Type Time
-------------------------
event1 START 2:30 PM
event3 START 2:45 PM
event1 END 3:00 PM
event2 START 3:05 PM
event3 END 3:10 PM
event2 END 3:30 PM
Run Code Online (Sandbox Code Playgroud)
基本上,我需要订购时间并知道它的事件,以及它是开始还是结束时间.我有一种感觉,这可以用一些奇特的SQL来完成,但我很难想到如何做到这一点.
谢谢!
没有什么花哨但简单UNION就足够了
SELECT Event, 'START', Start AS Time
FROM ATable
UNION ALL
SELECT Event, 'END', End AS Time
FROM ATable
ORDER BY
Time
Run Code Online (Sandbox Code Playgroud)
如果你想得到更多的幻想,UNPIVOT是另一种选择
SELECT Event, Type, Time
FROM ATable
UNPIVOT (Time FOR Type IN (Start, [End])) AS unpvt
ORDER BY
Time
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |