2017-03-16 197 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