共用方式為


排序資料列 (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;