2017-03-16 193 views
0

按时间排序时遇到问题。我有一个数据库(使用访问数据库),其中一些条目具有完全相同的时间(甚至秒)。当我按时间排序事件时,表格首先按时间对记录进行排序,然后根据下一列的第一个字母对它们进行组织。按时间排序SQL访问顺序(相同时间戳)根据名称更改事件顺序

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

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

发生了什么事,在我的报告,我和上面的查询打印“有所作为”生成“安装”,即使“安装”是第一次在我的数据库之前出现。我如何让我的Order by Time不改变序列,但保持序列并继续按照时间顺序排序另一个序列?

+1

这是一个id列,将有助于 – GurV

回答

0

访问,您可以使用开关此:

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

使用switch语句结束。 – ds487

0

这是太长的评论。 (一般)不是稳定。这意味着具有相同键值的行可以按任意顺序排列 - 甚至可以从一次运行改变到下一次运行。

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

ORDER BY Time, id 
+0

感谢您的快速回复。该项目从来没有一个ID,所以我没有这个选项可用。如何通过一个条款订购?我甚至试图比较该行的第一个值。到下一个看看它们是不同的字母。 – ds487