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é.
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 :
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 :
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 :
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
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 :
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 :
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!