2014-02-24 70 views
0

我有表StateList與所有狀態名稱。對於COL名稱,我後來添加了「密歇根州」,它始終位於下拉表的列表底部。因爲它具有FK約束,所以在沒有刪除表的情況下對列名進行字母排序最簡單。按字母順序在現有表中的訂單值

我已經試過這樣:

Select Name From StateList 
Order By Name ASC 

顯示按字母順序的結果,但是當我SELECT * FROM StateList一遍,列仍然是原來的順序與密歇根州底部。我是否需要重新插入所有狀態值?

+1

表中的記錄沒有順序。當您不使用ORDER BY時,它們返回的順序是當時適用於SQL的任何順序。 – RBarryYoung

+0

刪除密歇根州名稱值並在「馬薩諸塞州」之後重新插入密碼更容易?其他一切都按字母順序排列。例如:插入馬薩諸塞後的Statelist(Name)值(「Michigan」)?但是如何? –

+0

什麼都不做是比較容易的,但那也行不通。 @JNK下面有正確的答案,它是唯一可以可靠工作的東西。當你不使用'ORDER BY'時,你告訴SQL「*我不在乎你返回記錄的順序是什麼*」,並且SQL向你發送信息並做任何想做的事情。僅僅因爲它迄今一直以相同的順序返回它們,並不意味着它將在未來。如果你想***特定的訂單,那麼你需要***來告訴它。 – RBarryYoung

回答

2

沒有ORDER沒有ORDER BY。您將記錄插入到表中的訂單與它們檢索的訂單之間沒有可預測的關係。沒有JOIN或其他篩選器的結果,他們可能回到INSERT訂單,但沒有保證。

如果要按特定順序返回結果,請使用ORDER BY。期。