Maison  >  Article  >  Quelle est l'utilisation de distinct dans Oracle ?

Quelle est l'utilisation de distinct dans Oracle ?

百草
百草original
2023-07-11 09:35:565729parcourir

L'utilisation distincte d'Oracle peut filtrer les lignes en double dans l'ensemble de résultats pour garantir que la valeur de la ou des colonnes spécifiées renvoyées dans la clause "SELECT" est unique. La syntaxe est "SELECT DISTINCT colonne 1, colonne 2, colonne 3... à partir du nom de la table". "distinct" triera l'ensemble de résultats renvoyé et peut être utilisé conjointement avec "order by" pour améliorer l'efficacité.

Quelle est l'utilisation de distinct dans Oracle ?

L'environnement d'exploitation de cet article : système Windows 10, Oracle version 19c, ordinateur DELL G3.

Utilisation distincte d'Oracle

SELECT DISTINCT peut être utilisé pour filtrer les lignes en double dans l'ensemble de résultats afin de garantir que la valeur de la ou des colonnes spécifiées renvoyées dans la clause SELECT est unique.

Utilisez-le uniquement pour renvoyer le nombre d'enregistrements uniques, au lieu de l'utiliser pour renvoyer toutes les valeurs des enregistrements uniques. La raison en est que distinct ne peut être résolu que par une requête en double boucle, ce qui affectera sans aucun doute directement l'efficacité d'un site Web contenant une très grande quantité de données.

distinct triera l'ensemble de résultats renvoyé, il est donc préférable de l'utiliser conjointement avec order by pour améliorer l'efficacité.

Utilisation d'Oracle SELECT DISTINCT

La syntaxe de l'instruction SELECT DISTINCT est la suivante :

SELECT DISTINCT
    column_1
        FROM
    table_name;

Dans la syntaxe ci-dessus, les valeurs de la colonne column_1 de la table table_name seront comparées pour filtrer les doublons.

Pour récupérer des données uniques basées sur plusieurs colonnes, spécifiez simplement une liste de colonnes dans la clause SELECT comme indiqué ci-dessous :

SELECT DISTINCT column_1,
    column_2,
        ...
        FROM
    table_name;

Dans cette syntaxe, la combinaison des valeurs dans column_1, column_2 et column_n est utilisée pour déterminer l'unicité du sexe des données. La clause

DISTINCT ne peut être utilisée que dans l'instruction SELECT.

Veuillez noter qu'il n'y a aucune différence entre DISTINCT et UNIQUE dans Oracle. Ce sont des synonymes qui suivent la norme ANSI, et UNIQUE est une utilisation spécifique à Oracle. Du point de vue de la transplantation, l'utilisation de DISTINCT qui suit la norme ANSI est un meilleur choix. .

Exemples Oracle DISTINCT

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

1. Un exemple simple d'Oracle DISTINCT

Ce qui suit est une table

字段1     字段2
 id       name
 1         a
 2         b
 3         c
 4         c
 5         b

Si vous souhaitez utiliser une seule instruction pour interroger toutes les données avec des noms non en double, vous devez utiliser distinct pour supprimer les enregistrements en double inutiles. Alors entrez d'abord :

select *, count(distinct name) from table group by name

Ensuite, nous entrons :

id name count(distinct name)

et obtenons le résultat :

1 a 1
2 b 1
3 c 1

2. Exemple d'application Oracle DISTINCT sur une colonne

L'exemple suivant récupère les noms de tous les contacts :

SELECT first_name
FROM contacts
ORDER BY first_name;

Exécutez la requête ci-dessus déclaration, Les résultats suivants ont été obtenus :

Quelle est lutilisation de distinct dans Oracle ?

La requête a renvoyé 319 lignes, indiquant que la table des contacts comporte 319 lignes.

Pour obtenir le nom unique du contact, vous pouvez ajouter le mot-clé DISTINCT à l'instruction SELECT ci-dessus, comme indiqué ci-dessous :

Quelle est lutilisation de distinct dans Oracle ?

La requête a renvoyé 302 lignes, indiquant que la table des contacts comporte 17 lignes en double, elles ont été filtrées .

2. Exemple multi-colonnes d'application Oracle DISTINCT

Regardez la table order_items ci-dessous :

Quelle est lutilisation de distinct dans Oracle ?

L'instruction suivante sélectionne différents ID de produit et quantités dans la table order_items :

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;
.

Exécutez l'instruction de requête ci-dessus, nous obtenons le résultat suivant

Quelle est lutilisation de distinct dans Oracle ?

Dans cet exemple, les valeurs des colonnes product_id et quantitative 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 des valeurs en double. Si vous utilisez l'instruction SELECT DISTINCT pour interroger les données d'une colonne avec plusieurs valeurs NULL, le jeu de résultats ne contient qu'une seule valeur NULL.

Veuillez vous référer à la table locations dans l'exemple de base de données, la structure est la suivante :

Quelle est lutilisation de distinct dans Oracle ?

L'instruction suivante récupère les données avec plusieurs valeurs NULL de la colonne d'état :

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

En exécutant l'exemple de code ci-dessus, vous obtenez les résultats suivants :

Quelle est lutilisation de distinct dans Oracle ?

Comme vous pouvez le voir sur l'image ci-dessus, seule une valeur NULL est renvoyée.

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