Heim > Datenbank > Oracle > Hauptteil

So führen Sie eine Abfragededuplizierung in Oracle durch

青灯夜游
Freigeben: 2022-03-16 16:39:13
Original
41340 Leute haben es durchsucht

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;“.

So führen Sie eine Abfragededuplizierung in Oracle durch

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.

Oracle SELECT DISTINCT-Anweisung

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;
Nach dem Login kopieren

在上面语法中,table_name表的column_name列中的值将进行比较以过滤重复项。

要根据多列检索唯一数据,只需要在SELECT子句中指定列的列表,如下所示:

SELECT
    DISTINCT column_1,
    column_2,
        ...
FROM
    table_name;
Nach dem Login kopieren

在此语法中,column_1column_2column_n中的值的组合用于确定数据的唯一性。

DISTINCT子句只能在SELECT语句中使用。

请注意,DISTINCT不是SQL标准的UNIQUE的同义词。总是使用DISTINCT而不使用UNIQUE是一个好的习惯。

Oracle DISTINCT示例

下面来看看如何使用SELECT DISTINCT来看看它是如何工作的一些例子。

1. Oracle DISTINCT在一列上应用的示例

查看示例数据库中的联系人(contacts)表:

So führen Sie eine Abfragededuplizierung in Oracle durch

以下示例检索所有联系人的名字:

SELECT first_name
FROM contacts
ORDER BY first_name;
Nach dem Login kopieren

执行上面查询语句,得到以下结果 -

So führen Sie eine Abfragededuplizierung in Oracle durch

该查询返回了319行,表示联系人(contacts)表有319行。

要获得唯一的联系人名字,可以将DISTINCT关键字添加到上面的SELECT语句中,如下所示:

SELECT DISTINCT first_name
FROM contacts
ORDER BY first_name;
Nach dem Login kopieren

执行上面查询语句,得到以下结果 -

So führen Sie eine Abfragededuplizierung in Oracle durch

该查询返回了302行,表示联系人(contacts)表有17行是重复的,它们已经被过滤了。

2. Oracle DISTINCT应用多列示例

看下面的order_items表,表的结构如下:

So führen Sie eine Abfragededuplizierung in Oracle durch

以下语句从order_items表中选择不同的产品ID和数量:

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;
Nach dem Login kopieren

执行上面查询语句,得到以下结果 -

So führen Sie eine Abfragededuplizierung in Oracle durch

在此示例中,product_idquantity列的值都用于评估结果集中行的唯一性。

3. Oracle DISTINCT和NULL

DISTINCTNULL值视为重复值。如果使用SELECT DISTINCT语句从具有多个NULL值的列中查询数据,则结果集只包含一个NULL值。

请参阅示例数据库中的locations表,结构如下所示 -

So führen Sie eine Abfragededuplizierung in Oracle durch

以下语句从state列中检索具有多个NULL值的数据:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;
Nach dem Login kopieren

执行上面示例代码,得到以下结果 -

So führen Sie eine Abfragededuplizierung in Oracle durch

正如上图所看到的,只返回一个NULL
Die Syntax der SELECT DISTINCT-Anweisung wird unten erklärt:

rrreee

In der obigen Syntax sind die Werte in der Spalte column_name des table_name wird verglichen, um Duplikate zu filtern. <a href="//m.sbmmt.com/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:

rrreee🎜In dieser Syntax ist 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. 🎜

Oracle DISTINCT-Beispiel🎜🎜Hier sind einige Beispiele für die Verwendung von SELECT DISTINCT, um zu sehen, wie es funktioniert. 🎜

🎜1. Beispiel für die Anwendung von Oracle DISTINCT auf eine Spalte🎜

🎜Kontakte in der Beispieldatenbank (contacts) anzeigen : 🎜🎜So führen Sie eine Abfragededuplizierung in Oracle durch🎜 🎜 Das folgende Beispiel ruft die Namen aller Kontakte ab: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: 🎜🎜So führen Sie eine Abfragededuplizierung in Oracle durch🎜🎜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. 🎜

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

🎜Sehen Sie sich die Tabelle order_items an Die Tabelle lautet wie folgt: 🎜 🎜So führen Sie eine Abfragededuplizierung in Oracle durch🎜🎜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: 🎜🎜So führen Sie eine Abfragededuplizierung in Oracle durch🎜🎜In diesem Beispiel product_id und quantityDie Werte in der Spalte code> werden verwendet, um die Eindeutigkeit der Zeilen in der Ergebnismenge zu bewerten. 🎜

🎜3. Oracle DISTINCT und NULL🎜

🎜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: 🎜🎜So führen Sie eine Abfragededuplizierung in Oracle durch🎜🎜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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!