English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL DISTINCT Klausel

In diesem Tutorial lernen Sie, wie Sie wiederholte Werte aus dem Ergebnissatz entfernen können.

Differenten Werte abrufen

Wenn Sie Daten aus einer Datenbanktabelle abrufen, kann der Ergebnissatz wiederholte Zeilen oder Werte enthalten. Um diese wiederholten Werte zu entfernen, können Sie nach dem SELECT-Schlüssel direkt das Schlüsselwort DISTINCT angeben, wie folgt:

Syntax

Die DISTINCT-Klausel wird verwendet, um wiederholte Zeilen aus dem Ergebnissatz zu entfernen:

SELECT DISTINCT column_list FROM table_name;

Hier,column_listist eine durch Kommas getrennte Liste von Spaltennamen oder Feldnamen der Datenbanktabelle, deren Werte abgerufen werden sollen (z.B.name,age,countryusw.).

Hinweis: Das Verhalten der DISTINCT-Klausel ist ähnlich wieUNIQUEEine Einschränkung, die sich in der Behandlung von NULL unterscheidet. Zwei NULL-Werte werden als einzigartig betrachtet, ohne dass sie als unterschiedlich angesehen werden.

Lassen Sie uns einige Beispiele sehen, die die tatsächliche Arbeitsweise demonstrieren.

Angenommen, wir haben in der DatenbankcustomersDie Tabelle, die die folgenden Einträge enthält:

+---------+--------------------+-----------+-------------+
| cust_id | cust_name                                      | city                  | postal_code |
+---------+--------------------+-----------+-------------+
|       1 | Maria Anders                           | Berlin              | 12209       |
|       2 | Fran Wilson                              | Madrid              | 28023       |
|       3 | Dominique Perrier                      | Paris               | 75016       |
|       4 | Martin Blank                           | Turin               | 10100                                     |
|       5 | Thomas Hardy                           | Portland           | 97219       |
|       6 | Christa Aguilera | Madrid             | 28001       |
+---------+--------------------+-----------+-------------+

Führen Sie nun den folgenden Befehl aus, der die folgenden Zeilen der Tabelle zurückgibt:cityAlle Zeilen in der Spalte.

SELECT city FROM customers;

Nach der Ausführung erhalten Sie die folgende Ausgabe:

+-----------+
| Stadt |
+-----------+
| Berlin |
| Madrid |
| Paris |
| Turin |
| Portland |
| Madrid |
+-----------+

Wenn Sie genau hinschauen, werden Sie feststellen, dass die Stadt „Madrid“ in unserer Ergebnisliste zweimal vorkommt, das ist ja nicht gut. Na gut, lassen Sie uns dieses Problem lösen.

doppelt vorhandene Daten zu entfernen

Die folgenden Anweisungen werden verwendet, um DISTINCT incustomersListe aller Städte im Tisch generieren.

SELECT DISTINCT city FROM customers;

Nach Ausführung des obigen Befehls erhalten Sie wie folgt ausgeben:

+-----------+
| Stadt |
+-----------+
| Berlin |
| Madrid |
| Paris |
| Turin |
| Portland |
+-----------+

Wie Sie sehen können, gibt es im aktuellen Ergebnissatz keine wiederholten Werte.

Hinweis:Wenn das SELECT DISTINCT-Statement auf eine Spalte mit mehreren NULL-Werten angewendet wird, behält SQL einen NULL-Wert bei und löscht andere Werte aus dem Ergebnissatz, da DISTINCT alle NULL-Werte als gleiche Werte betrachtet.