Dieses SQL-Tutorial konzentriert sich auf das SQL-Schlüsselwort DISTINCT in Oracle und bietet Erklärungen, Beispiele und Übungen. Die Übungen zu dieser Lektion finden Sie unter diesem Link.
Dieses Tutorial ist Teil mehrerer Beiträge, in denen erklärt wird, wie man grundlegende Abfragen in Oracle schreibt. Um weitere Beiträge zu diesem Thema zu lesen, verwenden Sie bitte die folgenden Links:
- Schreiben grundlegender SQL SELECT-Anweisungen
- SQL-Arithmetische Operatoren
- SQL-Spaltenalias
- SQL-Zeichenkettenverkettung
- SQL-Schlüsselwort DISTINCT
Das Oracle-Schlüsselwort DISTINCT
Die Standardanzeige von Oracle-Abfragen sind alle Zeilen, einschließlich doppelter Zeilen. Das Oracle-Schlüsselwort DISTINCT in der SELECT-Klausel wird verwendet, um doppelte Zeilen zu eliminieren und eine eindeutige Liste von Werten anzuzeigen.
Angenommen, wir haben eine Tabelle Kunden, die eine Liste von Kunden aus verschiedenen Städten enthält: 40 Kunden aus London, 30 aus Liverpool und 30 aus Manchester. Sie wurden gebeten, die Liste der Städte anzuzeigen, in denen diese Kunden ansässig sind:
SELECT cityFROM customers
Diese Oracle-Anweisung ist nicht sehr hilfreich, da sie 100 Zeilen abruft (London kommt 40-mal, Liverpool 30-mal und Manchester 30-mal vor), während unsere Absicht war, nur 3 Zeilen anzuzeigen.
Um dieses Problem zu lösen und nur eindeutige Werte abzurufen, verwenden Sie das Oracle-Schlüsselwort DISTINCT:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Das Ergebnis:
CITY------LondonLiverpoolManchester
Hinweis: Das Oracle-Schlüsselwort DISTINCT sollte unmittelbar nach dem Oracle-Schlüsselwort SELECT eingefügt werden.
Oracle DISTINCT Statement on Multiple Columns
Nach dem Oracle DISTINCT-Schlüsselwort ist es möglich, mehr als eine Spalte anzugeben. Der Oracle DISTINCT-Qualifier wirkt sich auf alle ausgewählten Spalten aus, wobei das Ergebnis die eindeutige Kombination von Werten aus den verschiedenen Spalten anzeigt. Zum Beispiel eine Liste von Kunden aus verschiedenen Städten und Ländern:
Kundenname | Stadt | Land |
John Smith | Liverpool | England |
Sophia Williams | London | England |
Emma Miller | Liverpool | England |
Olivia Wilson | Paris | Frankreich |
Logan Davis | Paris | Frankreich |
Sie können sehen, dass es zwei Kunden aus Liverpool-England, zwei Kunden aus Paris-Frankreich, und ein weiterer Kunde aus London-England.
Die Ausführung der Oracle DISTINCT-Anweisung auf die Spalte Land führt zum Abruf von 2 Zeilen (England, Paris).
SELECT DISTINCT countryFROM customers
Die Ausführung der Oracle DISTINCT-Anweisung auf die Spalte Stadt führt zum Abruf von 3 Zeilen (Liverpool, London, Paris).
SELECT DISTINCT city FROM customers
Wenn Sie die Oracle DISTINCT-Anweisung sowohl für die Spalte „Stadt“ als auch für die Spalte „Land“ ausführen:
SELECT DISTINCT city , countryFROM customers
Drei Ergebnisse werden abgerufen – Liverpool England, London England, Paris Frankreich.