Wprowadzenie do klauzuli ORDER BY w SQL
Klauzula ORDER BY w SQL pomaga nam kategoryzować nasze dane w kolejności rosnącej lub malejącej, w zależności od kolumn naszych tabel. ORDER BY to słowo kluczowe użyte w naszym zapytaniu, które pomaga nam sortować dane. Domyślnie kilka baz danych kategoryzuje wyniki zwrócone przez zapytanie w porządku rosnącym. Aby posortować dane znajdujące się w rekordach w kolejności malejącej, w naszym zapytaniu wykorzystujemy słowo kluczowe DESC. Mamy również słowo kluczowe ASC, aby kategoryzować dane w kolejności rosnącej, chociaż przeważnie nie używamy ich z powodu domyślnych ustawień bazy danych.
Parametry klauzuli ORDER BY w SQL
- nazwa_kolumny: wskazuje nazwę kolumny, którą chcemy pobrać, na podstawie której dane mają zostać ustawione.
- nazwa_tabeli: Wskazuje nazwę tabeli, z której należy uzyskać rekordy. Musimy mieć co najmniej jedną nazwę tabeli w tym parametrze.
- GDZIE warunek: jest to parametr opcjonalny. GDZIE klauzula zawiera warunki, które musimy spełnić, aby dane zostały wybrane.
- ASC : jest to słowo kluczowe używane do sortowania danych kolumny w porządku rosnącym. Jeśli nie podano żadnego słowa kluczowego, dane są domyślnie sortowane w porządku rosnącym.
- DESC: To słowo kluczowe służy do sortowania danych kolumny w porządku malejącym.
- |: Jest to tylko wskaźnik dla „LUB”, ponieważ w wynikach wyszukiwania mamy odpowiednio użyć ASC lub DESC.
Klauzula ORDER BY
Składnia ORDER BY to:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Składnia do sortowania danych według jednej kolumny
Aby posortować dane tabeli na podstawie pojedynczej kolumny w kolejności rosnącej lub malejącej, możemy użyć słów kluczowych ASC lub DESC. W naszym przykładzie będziemy sortować dane w porządku rosnącym, używając słowa kluczowego ASC.
Składnia
SELECT * FROM table_name ORDER BY column_name ASC
Składnia do sortowania danych według kilku kolumn
Aby posortować dane tabeli według kilku kolumn w kolejności rosnącej lub malejącej, możemy użyć słów kluczowych ASC lub DESC. Aby wymienić kilka kolumn, według których będziemy sortować dane, musimy wspomnieć nazwy kolumn oddzielone przecinkiem (, ). W naszym przykładzie będziemy sortować dane w porządku rosnącym, używając słowa kluczowego ASC.
Składnia
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Przykłady klauzuli ORDER BY
Przyjrzyjmy się różnym przykładom, aby lepiej zrozumieć klauzulę ORDER BY.
1. Przykład sortowania wyników w porządku rosnącym
Aby kategoryzować wyniki w porządku rosnącym, możemy użyć słowa kluczowego ASC. Jeśli nie podano słowa kluczowego, ASC lub DESC, domyślną kolejnością sortowania jest kolejność rosnąca. Pozwól nam to zrozumieć na podstawie przykładu. Mamy tabelę pracowników.
Numer identyfikacyjny pracownika | EmployeeLastName | EmployeeFirstName | ID e-mail |
001 | Donald | Jo | |
002 | Kowal | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tomasz | Wypad | |
006 | brązowy | Dan |
Kiedy próbujemy uporządkować wyniki w kolejności rosnącej nazwiska Pracownika, możemy użyć następującej instrukcji, a wynik, który następuje, zostanie wyświetlony w tabeli po.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
Wynik
Numer identyfikacyjny pracownika | EmployeeLastName | EmployeeFirstName | ID e-mail |
006 | brązowy | Dan | |
001 | Donald | Jo | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
002 | Kowal | Jamie | |
005 | Tomasz | Wypad |
Ten przykład zwraca wszystkie rekordy z tabeli pracownika posortowane w porządku rosnącym zgodnie z polem EmployeeLastName. Możemy również użyć słowa kluczowego ASC w następujący sposób, aby uzyskać ten sam wynik.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Przykład sortowania wyników w kolejności malejącej
Używamy słowa kluczowego DESC, gdy chcemy posortować nasze dane w kolejności malejącej, w naszej klauzuli ORDER BY. Pozwól nam to zrozumieć na podstawie przykładu. Mamy tę samą tabelę Pracownik zawierający następujące dane.
Numer identyfikacyjny pracownika | EmployeeLastName | EmployeeFirstName | ID e-mail |
001 | Donald | Jo | |
002 | Kowal | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tomasz | Wypad | |
006 | brązowy | Dan |
Potrzebujemy tylko pracowników, których identyfikator pracownika jest większy niż 2 i potrzebujemy sortowania danych w kolejności malejącej. Używamy następującej instrukcji SQL do tego samego i otrzymujemy tabelę zestawów wyników z tylko 4 rekordami.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Wynik:
Numer identyfikacyjny pracownika | EmployeeLastName | EmployeeFirstName | ID e-mail |
006 | brązowy | Dan | |
005 | Tomasz | Wypad | |
004 | Reynolds | Andy | |
003 | Jones | Amy |
3. Przykład sortowania wyników według ich względnej pozycji
Możemy również uporządkować nasze dane według względnej pozycji kolumn, gdzie 1 reprezentuje pierwsze pole, 2 reprezentuje drugie pole, 3 reprezentuje trzecie pole i tak dalej. Spróbujmy uporządkować dane w naszej tabeli pracowników według pozycji względnych.
Numer identyfikacyjny pracownika | EmployeeLastName | EmployeeFirstName | |
001 | Donald | Jo | |
002 | Kowal | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Tomasz | Wypad | |
006 | brązowy | Dan |
Korzystając z poniższej instrukcji SQL, możemy uporządkować dane w malejącej kolejności EmployeeID. Stwierdziliśmy również, że potrzebujemy tylko dwóch kolumn z tabeli, mianowicie EmployeeID i EmployeeLastName, wraz z użyciem klauzuli WHERE, aby wspomnieć, że nie chcemy żadnego wiersza zawierającego EmployeeID 003.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
Wynik
Numer identyfikacyjny pracownika | EmployeeLastName |
006 | brązowy |
005 | Tomasz |
004 | Reynolds |
002 | Kowal |
001 | Donald |
Ponieważ kolumna na pozycji 1 to identyfikator pracownika, zestaw wyników jest sortowany według identyfikatora pracownika.
Wniosek
W SQL instrukcja SELECT nie zwraca danych w żadnej określonej kolejności. Aby zagwarantować określone zamówienie, korzystamy z klauzuli ORDER BY. Sortuj według według jednej lub więcej kolumn. Rekordy są zwracane w kolejności rosnącej lub malejącej. Jeśli nie podano słowa kluczowego ASC lub DESC, wyniki zostaną sklasyfikowane w porządku rosnącym.
Polecany artykuł
Jest to przewodnik po klauzuli ORDER BY w SQL. Tutaj omawiamy parametry i różne przykłady klauzuli ORDER BY wraz ze składnią. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Zalety NoSQL
- Narzędzia zarządzania SQL
- Funkcje ciągów T-SQL
- Typy danych PostgreSQL
- Różne typy danych SQL z przykładami