Поделиться через


Сортировка строк (визуальные инструменты для баз данных)

применимо к:SQL Server

Вы можете упорядочить строки в результатах запроса. То есть можно назвать определенный столбец или набор столбцов, значения которых определяют порядок строк в результирующем наборе.

Заметка

Порядок сортировки определяется частично последовательностью сортировки столбца. Вы можете изменить последовательность сортировки в диалоговом окне сортировки.

Существует несколько способов сортировки результатов запроса:

  • Вы можете упорядочить строки по возрастанию или убыванию По умолчанию SQL использует столбцы order-by для упорядочивания строк в порядке возрастания. Например, чтобы упорядочить названия книги по возрастанию цены, просто сортируйте строки по столбцу цен. Результирующий 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  
    

См. также

Результаты сортировки и группового запроса (визуальные инструменты базы данных)
Темы справки по проектированию запросов и представлений (визуальные инструменты для баз данных)