Udostępnij za pomocą


Sortowanie wierszy (Visual Database Tools)

Dotyczy:programu SQL Server

Rzędy można porządkować w wyniku zapytania. Oznacza to, że można nazwać określoną kolumnę lub zestaw kolumn, których wartości określają kolejność wierszy w zestawie wyników.

Notatka

Kolejność sortowania jest określana częściowo przez sekwencję sortowania kolumny. Sekwencję sortowania można zmienić w oknie dialogowym Sortowanie.

Istnieje kilka sposobów sortowania wyników zapytania:

  • Możesz uporządkować wiersze w kolejności rosnącej lub malejącej

    Domyślnie usługa SQL używa kolumn order-by do rozmieszczania wierszy w kolejności rosnącej. Aby na przykład rozmieścić tytuły książek według rosnącej ceny, po prostu posortuj wiersze według kolumny price (cena). Wynikowy kod SQL może wyglądać następująco:

    SELECT *
    FROM titles
    ORDER BY price;
    

    Z drugiej strony, jeśli chcesz uporządkować tytuły, zaczynając od droższych książek, możesz wprost określić kolejność od najdroższych. Oznacza to, że wiersze wyników powinny być ułożone malejąco według wartości kolumny 'cena'. Wynikowy kod SQL może wyglądać następująco:

    SELECT *
    FROM titles
    ORDER BY price DESC;
    
  • Można sortować według wielu kolumn

    Na przykład można utworzyć zestaw wyników z jednym wierszem dla każdego autora, porządkowając najpierw według stanu, a następnie według miasta. Wynikowy kod SQL może wyglądać następująco:

    SELECT *
    FROM authors
    ORDER BY state, city;
    
  • Możesz sortować według kolumn, które nie są wyświetlane w zestawie wyników

    Na przykład możesz utworzyć zestaw wyników z najdroższymi tytułami, mimo że ceny nie są wyświetlane. Wynikowy kod SQL może wyglądać następująco:

    SELECT title_id,
           title
    FROM titles
    ORDER BY price DESC;
    
  • Możesz sortować według kolumn pochodnych

    Można na przykład utworzyć zestaw wyników, w którym każdy wiersz zawiera tytuł książki, z książkami, które przynoszą najwyższą opłatę licencyjną za kopię. Wynikowy kod SQL może wyglądać następująco:

    SELECT title,
           price * royalty / 100 AS royalty_per_unit
    FROM titles
    ORDER BY royalty_per_unit DESC;
    

    (Formuła obliczania tantiemy, którą każda książka zarabia na kopię, jest podkreślona).

    Aby obliczyć kolumnę pochodną, możesz użyć składni SQL, tak jak w poprzednim przykładzie, lub użyć funkcji zdefiniowanej przez użytkownika, która zwraca wartość skalarną. Aby uzyskać więcej informacji na temat funkcji zdefiniowanych przez użytkownika, zobacz dokumentację programu SQL Server.

  • Możesz sortować pogrupowane wiersze

    Na przykład, możesz utworzyć zestaw wyników, w którym każdy wiersz opisuje miasto oraz liczbę autorów w tym mieście — z miastami zawierającymi wielu autorów pojawiającymi się jako pierwsze. Wynikowy kod SQL może wyglądać następująco:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state
    ORDER BY COUNT(*) DESC, state;
    

    Zapytanie używa state jako pomocniczej kolumny sortowania. W związku z tym, jeśli dwa stany mają taką samą liczbę autorów, stany te pojawiają się w kolejności alfabetycznej.

  • Możesz sortować przy użyciu danych międzynarodowych

    Czyli; Kolumnę można sortować przy użyciu konwencji sortowania, które różnią się od domyślnych konwencji dla tej kolumny. Możesz na przykład napisać zapytanie, które pobiera wszystkie tytuły książki autorstwa Jaime Patiño. Aby wyświetlić tytuły w kolejności alfabetycznej, należy użyć hiszpańskiej sekwencji sortowania dla kolumny tytułu. Wynikowy kod SQL może wyglądać następująco:

    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;