Maison  >  Article  >  base de données  >  Comment effectuer la déduplication des requêtes dans Oracle

Comment effectuer la déduplication des requêtes dans Oracle

青灯夜游
青灯夜游original
2022-03-16 16:39:0141367parcourir

Dans Oracle, vous pouvez utiliser l'instruction SELECT et le mot-clé DISTINCT pour réaliser la déduplication des requêtes, filtrer les lignes en double dans l'ensemble de résultats de la requête et garantir que la valeur de la ou des colonnes spécifiées renvoyées après l'opération de requête est unique dans la syntaxe ; est "SELECT DISTINCT nom du champ FROM nom de la table de données ;".

Comment effectuer la déduplication des requêtes dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Dans Oracle, vous pouvez utiliser l'instruction SELECT et le mot-clé DISTINCT pour réaliser la déduplication des requêtes.

Instruction Oracle SELECT DISTINCT

Utilisez la clause DISTINCT dans l'instruction SELECT pour filtrer les lignes en double dans l'ensemble de résultats. Il garantit que les valeurs renvoyées dans la ou les colonnes spécifiées dans la clause SELECT sont uniques. 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_1column_2column_n中的值的组合用于确定数据的唯一性。

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

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

Oracle DISTINCT示例

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

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

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

Comment effectuer la déduplication des requêtes dans Oracle

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

SELECT first_name
FROM contacts
ORDER BY first_name;

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

Comment effectuer la déduplication des requêtes dans Oracle

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

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

SELECT DISTINCT first_name
FROM contacts
ORDER BY first_name;

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

Comment effectuer la déduplication des requêtes dans Oracle

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

2. Oracle DISTINCT应用多列示例

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

Comment effectuer la déduplication des requêtes dans Oracle

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

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

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

Comment effectuer la déduplication des requêtes dans Oracle

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

3. Oracle DISTINCT和NULL

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

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

Comment effectuer la déduplication des requêtes dans Oracle

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

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

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

Comment effectuer la déduplication des requêtes dans Oracle

正如上图所看到的,只返回一个NULL
La syntaxe de l'instruction SELECT DISTINCT est expliquée ci-dessous :

rrreee

Dans la syntaxe ci-dessus, les valeurs de la colonne column_name de la table_name sera Compare pour filtrer les doublons. <a href="https://www.php.cn/course/list/52.html" target="_blank"></a>Pour récupérer des données uniques basées sur plusieurs colonnes, spécifiez simplement la liste des colonnes dans la clause <code>SELECT comme suit :

rrreee🎜Dans cette syntaxe, column_1, La combinaison de les valeurs dans column_2 et column_n sont utilisées pour déterminer le caractère unique des données. 🎜🎜La clause DISTINCT ne peut être utilisée que dans l'instruction SELECT. 🎜🎜Veuillez noter que DISTINCT n'est pas synonyme du standard SQL UNIQUE. C'est une bonne pratique de toujours utiliser DISTINCT au lieu de UNIQUE. 🎜

Exemple Oracle DISTINCT🎜🎜Voici quelques exemples d'utilisation de SELECT DISTINCT pour voir comment cela fonctionne. 🎜

🎜1. Exemple d'Oracle DISTINCT appliqué sur une colonne🎜

🎜Afficher les contacts dans l'exemple de base de données (contacts) : 🎜🎜Comment effectuer la déduplication des requêtes dans Oracle🎜 🎜 L'exemple suivant récupère les noms de tous les contacts : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants : 🎜🎜Comment effectuer la déduplication des requêtes dans Oracle🎜🎜Cette requête a renvoyé la ligne 319, indiquant que le contact (contacts ) la table contient la ligne 319. 🎜🎜Pour obtenir le nom unique du contact, vous pouvez ajouter le mot-clé DISTINCT à l'instruction SELECT ci-dessus, comme indiqué ci-dessous : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez le résultats suivants-🎜🎜Comment effectuer la déduplication des requêtes dans Oracle 🎜🎜Cette requête a renvoyé 302 lignes, indiquant que 17 lignes dans la table Contacts (contacts) sont des doublons et qu'elles ont été filtrées. 🎜

🎜2. Exemple multi-colonnes d'application Oracle DISTINCT🎜

🎜Regardez le tableau order_items ci-dessous. le tableau est le suivant : 🎜 🎜Comment effectuer la déduplication des requêtes dans Oracle🎜🎜Les instructions suivantes Sélectionnez différents ID de produit et quantités dans la table order_items : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -🎜🎜Comment effectuer la déduplication des requêtes dans Oracle🎜🎜Dans cet exemple, product_id et quantitéLes valeurs de la colonne code> sont utilisées pour évaluer le caractère unique des lignes dans l'ensemble de résultats. 🎜

🎜3. Oracle DISTINCT et NULL🎜

🎜DISTINCT traite les valeurs NULL comme valeur en double. Si vous utilisez l'instruction SELECT DISTINCT pour interroger les données d'une colonne comportant plusieurs valeurs NULL, le jeu de résultats ne contient qu'une seule valeur NULL. 🎜🎜Veuillez vous référer au tableau emplacements dans la base de données exemple, la structure est la suivante-🎜🎜Comment effectuer la déduplication des requêtes dans Oracle🎜🎜L'instruction suivante récupère les données avec plusieurs valeurs NULL ​​à partir de l'état Colonne:🎜rrreee🎜Exécutez l'exemple de code ci-dessus et obtenez les résultats suivants-🎜🎜<img src="https://img.php.cn/upload/image/501/920/826/164741987164811Comment%20effectuer%20la%20d%C3%A9duplication%20des%20requ%C3%AAtes%20dans%20Oracle" title="164741987164811Comment effectuer la déduplication des requêtes dans Oracle " alt="Comment effectuer la déduplication des requêtes dans Oracle">🎜🎜Comme vous pouvez le voir dans l'image ci-dessus, seule une valeur <code>NULL est renvoyée. 🎜🎜🎜Tutoriel recommandé : "🎜Tutoriel Oracle🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn