共用方式為


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