Podsumowanie: w tym poradniku dowiesz się, jak używać instrukcji Oracle SELECT DISTINCT
do odpytywania o różne dane z tabel.
Wprowadzenie do instrukcji Oracle SELECT DISTINCT
Klauzula DISTINCT
jest używana w instrukcji SELECT
do filtrowania zduplikowanych wierszy w zbiorze wyników. Zapewnia ona, że zwracane wiersze są unikatowe dla kolumny lub kolumn określonych w klauzuli SELECT
.
Następnie zilustrowano składnię instrukcji SELECT DISTINCT
:
W tej instrukcji wartości w column_1
instrukcji table
są porównywane w celu określenia duplikatów.
Aby pobrać unikatowe dane na podstawie wielu kolumn, wystarczy określić listę kolumn w klauzuli SELECT
w następujący sposób:
W tej składni kombinacja wartości w kolumnach column_1
, column_2
i column_3
jest używana do określenia unikatowości danych.
Klauzula DISTINCT
może być używana tylko w instrukcji SELECT
.
Zauważ, że DISTINCT
jest synonimem UNIQUE
, który nie jest standardem SQL. Dobrą praktyką jest zawsze używanie DISTINCT
zamiast UNIQUE
.
Oracle SELECT DISTINCT przykłady
Przyjrzyjrzyjmy się kilku przykładom użycia SELECT DISTINCT
, aby zobaczyć, jak to działa.
A) Oracle SELECT DISTINCT przykład jednej kolumny
Zobacz tabelę contacts
w przykładowej bazie danych:
Następujący przykład pobiera wszystkie imiona kontaktów:
Kwerenda zwróciła 319 wierszy, wskazując, że tabela contacts
ma 319 wierszy.
Aby uzyskać unikatowe pierwsze imiona kontaktów, dodajemy słowo kluczowe DISTINCT
do powyższej instrukcji SELECT
w następujący sposób:
Teraz zbiór wyników ma 302 wiersze, co oznacza, że usunięto 17 zduplikowanych wierszy.
B) Oracle SELECT DISTINCT wiele kolumn przykład
Zobacz następującą tabelę order_items
:
Następująca instrukcja wybiera distinct product id i quantity z tabeli order_items
:
Następująca instrukcja ilustruje wynik:
W tym przykładzie obie wartości kolumn product_id
i quantity
są używane do oceny unikalności wierszy w zbiorze wyników.
C) Oracle SELECT DISTINCT i NULL
Kolumna DISTINCT
traktuje wartości NULL jako duplikaty siebie nawzajem. Jeśli użyjesz instrukcji SELECT DISTINCT
do odpytywania danych z kolumny, która ma wiele wartości NULL, zestaw wyników będzie zawierał tylko jedną wartość NULL.
Zobacz tabelę locations
w przykładowej bazie danych.
Następująca instrukcja pobiera dane z kolumny state, która ma wiele wartości NULL:
Wynik:
Jak widać, zwracana jest tylko jedna wartość NULL.
Zauważ, że jeśli chcesz zastosować instrukcję DISTINCT
do niektórych kolumn, pomijając jednocześnie inne kolumny, powinieneś zamiast tego użyć klauzuli GROUP BY
.
W tym poradniku dowiedziałeś się, jak używać instrukcji SELECT DISTINCT
w celu uzyskania unikalnych danych na podstawie jednej lub więcej kolumn.
- Czy ten poradnik był pomocny?
- TakNie
.