排序資料列 (Visual Database Tools)
適用於:SQL Server
您可以排序查詢結果中的數據列。 也就是說,您可以命名特定數據行或一組數據行,其值會決定結果集中的數據列順序。
注意
排序順序是由數據行的定序順序部分決定。 您可以在 [定序] 對話框中變更順序順序。
有數種方式可讓您排序查詢結果:
您可以依遞增或遞減順序排列列 預設情況下,SQL 會使用排序列來依遞增順序排列列。 例如,若要依遞增價格排列書名,只需依價格欄排序書名列即可。 產生的 SQL 看起來可能像這樣:
SELECT * FROM titles ORDER BY price
另一方面,如果您想要先使用更昂貴的書籍來排列標題,您可以明確指定最高的第一個順序。 也就是說,您指出結果數據列應該依價格數據行的遞減值來排列。 產生的 SQL 看起來可能像這樣:
SELECT * FROM titles ORDER BY price DESC
您可以依多個欄位排序 例如,您可以為每個作者建立一個結果集,先依州排序,再依城市排序。 產生的 SQL 看起來可能像這樣:
SELECT * FROM authors ORDER BY state, city
您可以依未出現在結果集中的數據行排序 例如,您可以先建立具有最昂貴標題的結果集,即使價格未出現也一樣。 產生的 SQL 看起來可能像這樣:
SELECT title_id, title FROM titles ORDER BY price DESC
您可以依衍生數據行排序 例如,您可以建立一個結果集,其中每個數據列都包含一個書名,而每個復本支付最高版稅的書籍會先出現。 產生的 SQL 看起來可能像這樣:
SELECT title, price * royalty / 100 as royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC
(計算每本書每份所賺取的版稅的公式被強調。
若要計算衍生的數據行,您可以使用 SQL 語法,如上述範例所示,也可以使用傳回純量值的使用者定義函數。 如需使用者定義函數的詳細資訊,請參閱 SQL Server 檔。
您可以排序群組數據列 例如;您可以建立一個結果集,其中每個數據列都會描述城市,加上該城市中的作者數目,其中含有許多作者的城市會先出現。 產生的 SQL 看起來可能像這樣:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state
請注意,查詢會使用
state
做為次要排序數據行。 因此,如果兩個狀態的作者數目相同,這些狀態會依字母順序顯示。您可以使用國際資料排序 也就是:您可以使用與該資料行的預設慣例不同的定序慣例來排序數據行。 例如,您可以撰寫查詢,以擷取 Jaime Patiño 的所有書名。 若要依字母順序顯示標題,您可以使用標題數據行的西班牙文定序序列。 產生的 SQL 看起來可能像這樣:
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS
另請參閱
排序和群組查詢結果 (Visual Database Tools)
設計查詢和檢視操作主題(Visual Database Tools)