2015-08-28 49 views
0

我想知道是否有人知道是否有辦法對已存在於數據庫中的數據進行排序。也就是說,我想排序什麼,但不是在查詢中檢索它。Oracle SQL - 存儲在數據庫中的訂單數據

我在問,因爲我有一個這個數據庫中的東西的列表,我希望在將來添加並希望在添加它們之後訂購它。

所以我的意思是,我想不必下載所有的數據;把它分類;然後將其放回數據庫。

在此先感謝。

+0

我不確定我關注?你想知道如何對數據進行排序? http://www.w3schools.com/sql/sql_intro.asp – Mark

+5

關係數據庫中的行不是**「排序」。檢索它們時對它們進行排序。僅對***結果進行排序的方法是使用'ORDER BY'。 –

+4

表中的數據未排序;您在查詢時訂購它。你所要求的並不合理。 –

回答

0

如果表中只有一列,那麼這很好,你可以簡單地對錶中的數據進行排序。

但是,如果表中有多個列,那麼它也會依賴於其他列(即,您需要指定要查找哪個列進行排序)。 此外,如果存在主鍵附加到表中,那麼它不可能,因爲主鍵默認情況下會以升序排列。在這種情況下,您只能從表中選擇數據。

(我的建議是,同時從表中選擇您的記錄,因爲這將是容易,將有風險更小的數據排序)

編輯:

爲了讓我點直並且清楚,實現您試圖簡單使用的最佳方法ORDER BY ASCORDER BY DESC當您從表中選擇數據時。

如果您正在創建一個新表,那麼您可以創建索引組織表以確保數據按索引排序。

+3

「*如果有一個主鍵附加到表,那麼它不可能,因爲它會按默認升序排列*」這是錯誤的。行不排序並且主鍵的存在不會改變(特別是不在Oracle中) –

+0

@a_horse_with_no_name: - 它用於主鍵,即主鍵默認按升序排列。不是嗎? –

+1

不,它不是。即使主鍵_index_是「升序」,也並不意味着表格也是這樣存儲的。 –

0

我想知道是否有人知道是否有辦法對已經駐留在數據庫中的數據進行排序。

普通關係表,稱爲堆組織的表,存儲行以任意順序即未排序。你排序行如果只有當你需要他們,而不是當你存儲他們。確保檢索行時排序的唯一方法是使用ORDER BY子句。