1. 程式人生 > 其它 >SQL:過濾和排序查詢結果

SQL:過濾和排序查詢結果

即使資料庫中的資料可能是唯一的,任何特定查詢的結果也可能不是——以我們的電影表為例,許多不同的電影可以在同一年上映。在這種情況下,SQL 提供了一種便捷的方法來使用DISTINCT關鍵字丟棄具有重複列值的行

選擇具有唯一結果的查詢

SELECT DISTINCT column, another_column, … FROM mytable WHERE condition(s);

由於DISTINCT關鍵字會盲目刪除重複行,我們將在以後的課程中學習如何使用分組和GROUP BY子句根據特定列丟棄重複項

與上幾課中我們整齊排列的表不同,真實資料庫中的大多數資料都沒有特定的列順序新增。因此,隨著表的大小增加到數千甚至數百萬行,可能很難通讀和理解查詢的結果。

為了解決這個問題,SQL 提供了一種使用ORDER BY子句按給定列按升序或降序對結果進行排序的方法

選擇具有有序結果的查詢

SELECT column, another_column, … FROM mytable WHERE condition(s) ORDER BY column ASC/DESC;

當一個ORDER BY指定的子句,每行是基於指定列的值排序的α-數值。在某些資料庫中,您還可以指定排序規則以更好地對包含國際文字的資料進行排序。

ORDER BY子句一起使用的另一個子句是LIMITandOFFSET子句,這是一種有用的優化,可以向資料庫指示您關心的結果子集。
LIMIT

將行的數量減少到回報,以及可選的OFFSET將指定從哪裡開始從計數的行數。

選擇行數有限的查詢(OFFSET第一行是1)

SELECT column, another_column, … FROM mytable WHERE condition(s) ORDER BY column ASC/DESC LIMIT num_limit OFFSET num_offset;