如何获得记录日期明智的降序,然后给出没有日期在sql中的记录

时间:2015-05-20 14:18:38

标签: mysql

我有一张名为attendance_master的表格 我有如下记录:

attendant_id | inout_time |名称

    1            |    NULL                | n1  
    2            |    NULL                | n2 
    3            |    2015-05-18 10:10:00 | n3 
    4            |    2015-05-19 10:05:00 | n4
    5            |    2015-05-18 10:07:00 | n5
    6            |    2015-05-18 12:03:00 | n6

现在我想要如下结果:

attendant_id | inout_time |名称

    4            |    2015-05-19 10:05:00 | n4
    6            |    2015-05-18 12:03:00 | n6
    3            |    2015-05-18 10:10:00 | n3 
    5            |    2015-05-18 10:07:00 | n5
    1            |    NULL                | n1  
    2            |    NULL                | n2 

我当前的查询和结果如下:

  select * from attendance_master order by inout_time DESC

注意:我不想使用union。

attendant_id | inout_time |名称

    1            |    NULL                | n1  
    2            |    NULL                | n2 
    4            |    2015-05-19 10:05:00 | n4
    6            |    2015-05-18 12:03:00 | n6
    3            |    2015-05-18 10:10:00 | n3 
    5            |    2015-05-18 10:07:00 | n5

3 个答案:

答案 0 :(得分:1)

您可以使用相同的字段按多个条件排序:

order by inout_time is null, inout_time desc

' d" null"首先是字段,然后按降序排序其他所有内容。

答案 1 :(得分:1)

select * from attendance_master order by inout_time DESC, ISNULL(inout_time)

答案 2 :(得分:0)

CASE子句可以帮助您:

SELECT * FROM attendance_master
    ORDER BY CASE WHEN inout_time is null THEN 1 ELSE 0 END,
    inout_time DESC