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.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.