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.
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:
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:
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:
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:
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:
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:
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!