SQL Access按时间顺序(相同的时间戳)根据名称

时间:2017-03-16 02:03:14

标签: sql database ms-access

按时间排序时出现问题。我有一个DB(使用访问数据库),其中一些条目具有完全相同的时间(甚至秒)。当我按时间对事件进行排序时,表会先按时间对记录进行排序,然后根据下一列的第一个字母对它们进行组织。

'Select * FROM Events Where RunNo = ' + RunNo + ' ORDER By Time'

RunNo  Time      Expination
1    6:23:29AM  Installing
1    6:23:29AM  Doing Something

正在发生的事情是,在我使用上述查询生成的报告中,在“安装”之前出现“正在做事”,即使“安装”是我的数据库中的第一个。如何使我的订单按时间不改变顺序,但保留顺序并继续按时间顺序排序另一个顺序?

2 个答案:

答案 0 :(得分:0)

评论太长了。

SQL中的

ORDER BY(一般情况下)不是 stable 。这意味着具有相同键值的行可以按任意顺序排列 - 甚至可以从一次运行更改为下一次运行。

一般解决方案是在行 - 标识列或创建日期使用唯一标识。然后你可以这样做:

ORDER BY Time, id

答案 1 :(得分:0)

Access 中,您可以使用 Switch

'Select * From Events Where RunNo = ' + RunNo + ' ORDER By Time, Switch([Expination] = "Installing", 0, [Expination] = "Doing Something", 1, [Expination] = "Ready for use", 2)'