gpt4 book ai didi

sql - 使用 SQL 垂直展开表

转载 作者:行者123 更新时间:2023-12-04 21:01:12 26 4
gpt4 key购买 nike

我的主题行可能不是最好的,但这是我想要做的:

我有一张包含开始时间和结束时间的表格:

Event   Start     End
-------------------------
event1 2:30 PM 3:00 PM
event2 3:05 PM 3:30 PM
event3 2:45 PM 3:10 PM

我想编写一个 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

基本上,我需要对时间进行排序,并知道它所针对的事件以及它是开始时间还是结束时间。我觉得这可以通过一些花哨的 SQL 来完成,但我在思考如何做到这一点时遇到了麻烦。

谢谢!

最佳答案

只要一个简单的 UNION 就足够了

SELECT Event, 'START', Start AS Time
FROM ATable
UNION ALL
SELECT Event, 'END', End AS Time
FROM ATable
ORDER BY
Time

如果你想更花哨一点,UNPIVOT 是另一种选择

SELECT  Event, Type, Time
FROM ATable
UNPIVOT (Time FOR Type IN (Start, [End])) AS unpvt
ORDER BY
Time

关于sql - 使用 SQL 垂直展开表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com