如何在sql

时间:2019-06-06 16:27:32

标签: mysql sql postgresql

我正在使用sql,并且有一个看起来像这样的表:

Id   roomid  startBookingRoom      EndBookingRoom        startTime   
1     1     2010/10/10 15:00:00    2010/10/10 18:00:00  2019/04/29 15:00:00
2     2     2010/10/09 15:00:00    2010/10/09 18:00:00  2019/04/30 15:00:00
3     3     2010/10/08 15:00:00    2010/10/08 18:00:00  2019/04/31 15:00:00
3     4     2010/10/06 15:00:00    2010/10/68 18:00:00  2019/04/31 15:00:00
3     4     2010/10/06 14:00:00    2010/10/68 18:00:00  2019/04/31 15:00:00

我要订单startTime Desc(2019/04/31第一和2010/04/31第二)。然后在startTime(2019/04/31 15:00:00)中,我想订购roomId Desc(4 first and 3 secord)。然后在房间ID中,我要订购startBookingRoom ASC(首先是2010/10/06 14:00:00,然后是2010/10/06 15:00:00秒)

分步订购如下所示:按desc订购startTime,如果startTime相同,则订购房间ID desc,如果订购同一个roomId,则订购startBookingRoom。

startTime(desc)=> roomId => startBookingRoom

我写的sql看起来像这样,但这是不正确的:

Select * from rooms when startTime >= '2019/04/25' order by
startTime,roomId,startBookingRoom 

但是它不起作用。 如何逐步订购startTime(desc)=> roomId => startBookingRoom 看起来像:按desc排序startTime,如果相同的startTime,则按顺序排序房间ID,如果相同的roomId,则订购startBookingRoom。谢谢

1 个答案:

答案 0 :(得分:1)

默认顺序为ASC(升序),因此您可以添加DESC(降序)

Select * from rooms where startTime >= '2019/04/25' 
order by startTime DESC, roomId DESC, startBookingRoom DESC