Ten tutorial SQL skupia się na słowie kluczowym SQL DISTINCT w Oracle, i zawiera wyjaśnienia, przykłady i ćwiczenia. Do ćwiczeń z tej lekcji użyj tego linku.
Tutorial ten jest częścią kilku postów wyjaśniających jak pisać podstawowe zapytania w Oracle. Aby przeczytać dodatkowe posty dotyczące tego tematu, proszę skorzystać z następujących linków:
- Pisanie podstawowych instrukcji SQL SELECT
- Operatory arytmetyczne
- Aliasy kolumnowe
- Konkatenacja ciągów znaków
- Słowo kluczowe Oracle DISTINCT
Słowo kluczowe Oracle DISTINCT
Domyślnym sposobem wyświetlania zapytań Oracle są wszystkie wiersze, w tym wiersze zduplikowane. Słowo kluczowe Oracle DISTINCT w klauzuli SELECT jest używane do eliminowania zduplikowanych wierszy i wyświetlania unikalnej listy wartości.
Na przykład: załóżmy, że mamy tabelę Customers, która zawiera listę klientów z różnych miast: 40 klientów z Londynu, 30 z Liverpoolu i 30 z Manchesteru. Zostałeś poproszony o wyświetlenie listy miast, w których mieszkają ci klienci:
SELECT cityFROM customers
Ta instrukcja Oracle nie jest zbyt pomocna, ponieważ pobiera 100 wierszy (Londyn zwraca 40 razy, Liverpool zwraca 30 razy i Manchester zwraca 30 razy), podczas gdy naszym zamiarem było wyświetlenie tylko 3 wierszy.
Aby rozwiązać ten problem i pobrać tylko unikalne wartości, użyj słowa kluczowego Oracle DISTINCT:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Wynik:
CITY------LondonLiverpoolManchester
Uwaga: Słowo kluczowe Oracle DISTINCT powinno być dołączone bezpośrednio po słowie kluczowym Oracle SELECT.
Oracle DISTINCT Statement on Multiple Columns
Po słowie kluczowym Oracle DISTINCT możliwe jest określenie więcej niż jednej kolumny. Kwalifikator Oracle DISTINCT oddziałuje na wszystkie wybrane kolumny, przez co w wyniku wyświetlona zostanie unikalna kombinacja wartości z różnych kolumn. Na przykład, lista klientów z różnych miast i krajów:
Nazwa klienta | Miasto | Kraj |
John Smith | Liverpool | Anglia |
Sophia Williams | Londyn | Anglia |
Emma Miller | Liverpool | England |
Olivia Wilson | Paryż | Francja |
Logan Davis | Paryż | Francja |
Widzisz, że jest dwóch klientów z Liverpool-…Anglia, dwóch klientów z Paryża-Francja, i jeszcze jeden klient z Londynu-Anglia.
Wykonanie polecenia Oracle DISTINCT na kolumnie Kraj powoduje pobranie 2 wierszy (Anglia,Paryż).
SELECT DISTINCT countryFROM customers
Wykonanie polecenia Oracle DISTINCT na kolumnie Miasto powoduje pobranie 3 wierszy (Liverpool, Londyn, Paryż).
SELECT DISTINCT city FROM customers
Jeżeli wykonasz instrukcję Oracle DISTINCT zarówno na kolumnie Miasto, jak i Kraj:
SELECT DISTINCT city , countryFROM customers
W wyniku pobrania trzech wyników – Liverpool Anglia, Londyn Anglia, Paryż Francja.
.