In Oracle können Sie die SELECT-Anweisung und das Schlüsselwort DISTINCT verwenden, um eine Abfragededuplizierung zu erreichen, doppelte Zeilen im Abfrageergebnissatz zu filtern und sicherzustellen, dass der Wert der angegebenen Spalte oder Spalten, die nach dem Abfragevorgang zurückgegeben werden, eindeutig ist ist „SELECT DISTINCT field name FROM data table name;“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.
In Oracle können Sie die SELECT-Anweisung und das DISTINCT-Schlüsselwort verwenden, um eine Abfragededuplizierung zu erreichen.
Verwenden Sie die DISTINCT
-Klausel in der SELECT
-Anweisung, um doppelte Zeilen im Ergebnissatz zu filtern. Es stellt sicher, dass die in der angegebenen Spalte oder Spalten in der SELECT
-Klausel zurückgegebenen Werte eindeutig sind. SELECT
语句中使用DISTINCT
子句来过滤结果集中的重复行。它确保在SELECT
子句中返回指定的一列或多列的值是唯一的。
以下说明了SELECT DISTINCT
语句的语法:
SELECT DISTINCT column_name FROM table_name;
在上面语法中,table_name
表的column_name
列中的值将进行比较以过滤重复项。
要根据多列检索唯一数据,只需要在SELECT
子句中指定列的列表,如下所示:
SELECT DISTINCT column_1, column_2, ... FROM table_name;
在此语法中,column_1
,column_2
和column_n
中的值的组合用于确定数据的唯一性。
DISTINCT
子句只能在SELECT
语句中使用。
请注意,DISTINCT
不是SQL标准的UNIQUE
的同义词。总是使用DISTINCT
而不使用UNIQUE
是一个好的习惯。
下面来看看如何使用SELECT DISTINCT
来看看它是如何工作的一些例子。
查看示例数据库中的联系人(contacts
)表:
以下示例检索所有联系人的名字:
SELECT first_name FROM contacts ORDER BY first_name;
执行上面查询语句,得到以下结果 -
该查询返回了319
行,表示联系人(contacts
)表有319
行。
要获得唯一的联系人名字,可以将DISTINCT
关键字添加到上面的SELECT
语句中,如下所示:
SELECT DISTINCT first_name FROM contacts ORDER BY first_name;
执行上面查询语句,得到以下结果 -
该查询返回了302
行,表示联系人(contacts
)表有17
行是重复的,它们已经被过滤了。
看下面的order_items
表,表的结构如下:
以下语句从order_items
表中选择不同的产品ID和数量:
SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;
执行上面查询语句,得到以下结果 -
在此示例中,product_id
和quantity
列的值都用于评估结果集中行的唯一性。
DISTINCT
将NULL
值视为重复值。如果使用SELECT DISTINCT
语句从具有多个NULL
值的列中查询数据,则结果集只包含一个NULL
值。
请参阅示例数据库中的locations
表,结构如下所示 -
以下语句从state
列中检索具有多个NULL
值的数据:
SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
执行上面示例代码,得到以下结果 -
正如上图所看到的,只返回一个NULL
Die Syntax der SELECT DISTINCT
-Anweisung wird unten erklärt:
In der obigen Syntax sind die Werte in der Spalte column_name
des table_name wird verglichen, um Duplikate zu filtern. <a href="https://www.php.cn/course/list/52.html" target="_blank"></a>Um eindeutige Daten basierend auf mehreren Spalten abzurufen, geben Sie einfach die Liste der Spalten in der <code>SELECT
-Klausel wie folgt an:
column_1
die Kombination von Werte in column_2
und column_n
werden verwendet, um die Eindeutigkeit der Daten zu bestimmen. 🎜🎜Die DISTINCT
-Klausel kann nur in der SELECT
-Anweisung verwendet werden. 🎜🎜Bitte beachten Sie, dass DISTINCT
kein Synonym für den SQL-Standard UNIQUE
ist. Es empfiehlt sich, immer DISTINCT
anstelle von UNIQUE
zu verwenden. 🎜SELECT DISTINCT
, um zu sehen, wie es funktioniert. 🎜contacts
) anzeigen : 🎜🎜🎜 🎜 Das folgende Beispiel ruft die Namen aller Kontakte ab: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: 🎜🎜🎜🎜Diese Abfrage gab die Zeile 319
zurück, die angibt, dass der Kontakt (contacts
) Tabelle hat Zeile 319
. 🎜🎜Um den eindeutigen Kontaktnamen zu erhalten, können Sie das Schlüsselwort DISTINCT
zur obigen SELECT
-Anweisung hinzufügen, wie unten gezeigt: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie The Folgende Ergebnisse: 🎜🎜 🎜🎜Diese Abfrage hat 302
Zeilen zurückgegeben, was darauf hinweist, dass 17
Zeilen in der Tabelle „Kontakte“ (contacts
) Duplikate sind und gefiltert wurden. 🎜order_items
an Die Tabelle lautet wie folgt: 🎜 🎜🎜🎜Die folgenden Anweisungen Wählen Sie verschiedene Produkt-IDs und Mengen aus der Tabelle order_items
aus: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: 🎜🎜🎜🎜In diesem Beispiel product_id
und quantity
Die Werte in der Spalte code> werden verwendet, um die Eindeutigkeit der Zeilen in der Ergebnismenge zu bewerten. 🎜DISTINCT
behandelt NULL
-Werte als doppelter Wert. Wenn Sie die Anweisung SELECT DISTINCT
verwenden, um Daten aus einer Spalte abzufragen, die mehrere NULL
-Werte enthält, enthält die Ergebnismenge nur einen NULL
-Wert. 🎜🎜Bitte beachten Sie die Tabelle locations
in der Beispieldatenbank. Die Struktur ist wie folgt: 🎜🎜🎜🎜Die folgende Anweisung ruft Daten mit mehreren NULL
-Werten aus dem state Spalte: 🎜rrreee🎜Führen Sie den obigen Beispielcode aus und erhalten Sie die folgenden Ergebnisse: 🎜🎜<img src="https://img.php.cn/upload/image/501/920/826/164741987164811So%20f%C3%BChren%20Sie%20eine%20Abfragededuplizierung%20in%20Oracle%20durch" title="164741987164811So führen Sie eine Abfragededuplizierung in Oracle durch " alt="So führen Sie eine Abfragededuplizierung in Oracle durch">🎜🎜Wie Sie im Bild oben sehen können, wird nur ein <code>NULL
-Wert zurückgegeben. 🎜🎜🎜Empfohlenes Tutorial: „🎜Oracle Tutorial🎜“🎜
Das obige ist der detaillierte Inhalt vonSo führen Sie eine Abfragededuplizierung in Oracle durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!