Heim  >  Artikel  >  Was ist die Verwendung von „distinct“ in Oracle?

Was ist die Verwendung von „distinct“ in Oracle?

百草
百草Original
2023-07-11 09:35:565707Durchsuche

Oracles eindeutige Verwendung kann doppelte Zeilen im Ergebnissatz filtern, um sicherzustellen, dass der Wert der angegebenen Spalte oder Spalten, die in der „SELECT“-Klausel zurückgegeben werden, eindeutig ist. Die Syntax lautet „SELECT DISTINCT Spalte 1, Spalte 2, Spalte 3... aus Tabellenname“. „distinct“ sortiert die zurückgegebene Ergebnismenge und kann in Verbindung mit „order by“ verwendet werden, um die Effizienz zu verbessern.

Was ist die Verwendung von „distinct“ in Oracle?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Oracle Version 19c, DELL G3-Computer.

Oracle Distinct Usage

SELECT DISTINCT kann verwendet werden, um doppelte Zeilen im Ergebnissatz zu filtern, um sicherzustellen, dass der Wert der angegebenen Spalte oder Spalten, die in der SELECT-Klausel zurückgegeben werden, eindeutig ist.

Verwenden Sie es nur, um die Anzahl eindeutiger Datensätze zurückzugeben, anstatt alle Werte eindeutiger Datensätze zurückzugeben. Der Grund dafür ist, dass Distinct nur durch eine Doppelschleifenabfrage gelöst werden kann, was sich zweifellos direkt auf die Effizienz einer Website mit einer sehr großen Datenmenge auswirkt.

distinct sortiert die zurückgegebene Ergebnismenge, daher ist es am besten, es in Verbindung mit order by zu verwenden, um die Effizienz zu verbessern.

Oracle SELECT DISTINCT-Verwendung

Die Syntax der SELECT DISTINCT-Anweisung lautet wie folgt:

SELECT DISTINCT
    column_1
        FROM
    table_name;

In der obigen Syntax werden die Werte in der Spalte „column_1“ der Tabelle „table_name“ verglichen, um Duplikate herauszufiltern.

Um eindeutige Daten basierend auf mehreren Spalten abzurufen, geben Sie einfach die Liste der Spalten in der SELECT-Klausel an, wie unten gezeigt:

SELECT DISTINCT column_1,
    column_2,
        ...
        FROM
    table_name;

In dieser Syntax wird die Kombination der Werte in Spalte_1, Spalte_2 und Spalte_n verwendet, um die Eindeutigkeit zu bestimmen des Datengeschlechts.

DISTINCT-Klausel kann nur in der SELECT-Anweisung verwendet werden.

Bitte beachten Sie, dass es in Oracle keinen Unterschied zwischen DISTINCT und UNIQUE gibt. DISTINCT folgt dem ANSI-Standard und UNIQUE ist eine Oracle-spezifische Verwendung. Aus Sicht der Transplantation ist die Verwendung von DISTINCT, die dem ANSI-Standard folgt, die bessere Wahl .

Oracle DISTINCT-Beispiele

Hier finden Sie einige Beispiele für die Verwendung von SELECT DISTINCT, um zu sehen, wie es funktioniert.

1. Ein einfaches Beispiel für Oracle DISTINCT

Das Folgende ist eine Tabelle

字段1     字段2
 id       name
 1         a
 2         b
 3         c
 4         c
 5         b

Wenn Sie eine Anweisung verwenden möchten, um alle Daten mit nicht doppelten Namen abzufragen, müssen Sie „distinct“ verwenden, um redundante doppelte Datensätze zu entfernen. Also geben Sie zuerst ein:

select *, count(distinct name) from table group by name

Dann geben wir ein:

id name count(distinct name)

und erhalten das Ergebnis:

1 a 1
2 b 1
3 c 1

2. Oracle DISTINCT-Anwendungsbeispiel für eine Spalte

Das folgende Beispiel ruft die Namen aller Kontakte ab:

SELECT first_name
FROM contacts
ORDER BY first_name;

Führen Sie die obige Abfrage aus Anweisung, Die folgenden Ergebnisse wurden erhalten:

Was ist die Verwendung von „distinct“ in Oracle?

Die Abfrage gab 319 Zeilen zurück, was darauf hinweist, dass die Kontakttabelle 319 Zeilen enthält.

Um den eindeutigen Kontaktnamen zu erhalten, können Sie das Schlüsselwort DISTINCT zur SELECT-Anweisung oben hinzufügen, wie unten gezeigt:

Was ist die Verwendung von „distinct“ in Oracle?

Die Abfrage hat 302 Zeilen zurückgegeben, was darauf hinweist, dass die Kontakttabelle 17 Zeilen enthält. Duplikat, sie wurden gefiltert .

2. Beispiel für eine mehrspaltige Oracle DISTINCT-Anwendung

Sehen Sie sich die Tabelle order_items wie folgt an:

Was ist die Verwendung von „distinct“ in Oracle?

Die folgende Anweisung wählt verschiedene Produkt-IDs und Mengen aus der Tabelle order_items aus:

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

Führen Sie die obige Abfrageanweisung aus. Wir erhalten das folgende Ergebnis:

Was ist die Verwendung von „distinct“ in Oracle?

In diesem Beispiel werden die Werte der Spalten „product_id“ und „quantity“ verwendet, um die Eindeutigkeit der Zeilen im Ergebnissatz zu bewerten.

3. Oracle DISTINCT und NULL

DISTINCT behandelt NULL-Werte als doppelte Werte. Wenn Sie die SELECT DISTINCT-Anweisung verwenden, um Daten aus einer Spalte mit mehreren NULL-Werten abzufragen, enthält die Ergebnismenge nur einen NULL-Wert.

Bitte beachten Sie die Standorttabelle in der Beispieldatenbank. Die Struktur ist wie folgt:

Was ist die Verwendung von „distinct“ in Oracle?

Die folgende Anweisung ruft Daten mit mehreren NULL-Werten aus der Statusspalte ab:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

Führen Sie den obigen Beispielcode aus erhalten Sie folgende Ergebnisse:

Was ist die Verwendung von „distinct“ in Oracle?

Wie Sie im Bild oben sehen können, wird nur ein NULL-Wert zurückgegeben.

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von „distinct“ in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn