使用MariaDB,我有一个视图,提供包括事件日期和是否接受邀请的信息。 eventdate
是类型为 date
的事件日期。 accepted
是类型为 tinyint
的字段,如果邀请被拒绝,则为0,如果邀请被接受,则为1,否则默认为NULL。
我想开发一个查询,按照 accepted
和 eventdate
排序,这样我的NULL值将出现在eventdate
顺序的最前面。然而,如果accepted
不为NULL,则希望按照eventdate
排序。
我的当前查询是:
从邀请视图中选择* ORDER BY已接受,eventdate
然而,这个查询将表格排序,使得所有accepted = NULL
的值在前面,所有0值在其后,最后所有1值在最后,如下所示:
eventname | eventdate | accepted --------------------------------- Event 1 | 2022-04-14 | NULL Event 2 | 2022-04-25 | NULL Event 3 | 2022-03-28 | 0 Event 4 | 2022-05-03 | 0 Event 5 | 2022-04-14 | 1 Event 6 | 2022-05-01 | 1
我希望得到类似这样的结果:
eventname | eventdate | accepted --------------------------------- Event 1 | 2022-04-14 | NULL Event 2 | 2022-04-25 | NULL Event 3 | 2022-03-28 | 0 Event 5 | 2022-04-14 | 1 Event 6 | 2022-05-01 | 1 Event 4 | 2022-05-03 | 0
一种方法是使用CASE条件排序结果
结果: