SQL DISTINCT
发布时间:2026-09-22 | 浏览:1
L’utilisation de la commande SELECT en SQL permet de lire toutes les données d’une ou plusieurs colonnes. Cette commande peut potentiellement afficher des lignes en doubles. Pour éviter des redondances dans les résultats il faut simplement ajouter DISTINCT après le mot SELECT.
Commande basique
L’utilisation basique de cette commande consiste alors à effectuer la requête suivante:
Cette requête sélectionne le champ « ma_colonne » de la table « nom_du_tableau » en évitant de retourner des doublons.
Requête pour Oracle
Pour le Système de Gestion de Bases de Données (SGBD) Oracle, cette requête est remplacée par la commande « UNIQUE »:
Prenons le cas concret d’une table « client » qui contient des noms et prénoms: identifiant prenom nom 1 Pierre Dupond 2 Sabrina Bernard 3 David Durand 4 Pierre Leroy 5 Marie Leroy En utilisant seulement SELECT tous les noms sont retournés, or la table contient plusieurs fois le même prénom (cf. Pierre). Pour sélectionner uniquement les prénoms uniques il faut utiliser la requête suivante:
Cette requête va retourner les champs suivants: prenom Pierre Sabrina David Marie Ce résultat affiche volontairement qu’une seule fois le prénom « Pierre » grâce à l’utilisation de la commande DISTINCT qui n’affiche que les résultats distincts.
L’utilisation de la commande DISTINCT est très pratique pour éviter les résultats en doubles. Cependant, pour optimiser les performances il est préférable d’utiliser la commande SQL GROUP BY lorsque c’est possible.
Cours recommandés
Cours SQL SELECT SQL DISTINCT SQL SQL_NO_CACHE SQL WHERE SQL AND & OR SQL IN SQL BETWEEN SQL LIKE SQL Wildcards SQL IS NULL / IS NOT NULL SQL GROUP BY SQL WITH ROLLUP SQL HAVING SQL ORDER BY SQL AS (alias) SQL LIMIT SQL CASE SQL UNION SQL UNION ALL SQL INTERSECT SQL EXCEPT / MINUS SQL INSERT INTO SQL ON DUPLICATE KEY UPDATE SQL UPDATE SQL DELETE SQL MERGE SQL TRUNCATE TABLE SQL CREATE DATABASE SQL DROP DATABASE SQL CREATE TABLE SQL PRIMARY KEY SQL AUTO_INCREMENT SQL ALTER TABLE SQL DROP TABLE Jointure SQL SQL INNER JOIN SQL CROSS JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL JOIN SQL SELF JOIN SQL NATURAL JOIN SQL Sous-requête SQL EXISTS SQL ALL SQL ANY / SOME Index SQL SQL CREATE INDEX SQL EXPLAIN SQL OPTIMIZE Commentaires en SQL Exercices SQL
SQL SELECT SQL DISTINCT SQL SQL_NO_CACHE
SQL SQL_NO_CACHE
SQL WHERE SQL AND & OR SQL IN SQL BETWEEN SQL LIKE SQL Wildcards SQL IS NULL / IS NOT NULL
SQL LIKE SQL Wildcards
SQL IS NULL / IS NOT NULL
SQL GROUP BY SQL WITH ROLLUP
SQL WITH ROLLUP
SQL UNION SQL UNION ALL
SQL EXCEPT / MINUS
SQL INSERT INTO SQL ON DUPLICATE KEY UPDATE
SQL ON DUPLICATE KEY UPDATE
SQL TRUNCATE TABLE
SQL CREATE DATABASE
SQL DROP DATABASE
SQL CREATE TABLE SQL PRIMARY KEY SQL AUTO_INCREMENT
SQL PRIMARY KEY
SQL AUTO_INCREMENT
SQL ALTER TABLE
Jointure SQL SQL INNER JOIN SQL CROSS JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL JOIN SQL SELF JOIN SQL NATURAL JOIN
SQL NATURAL JOIN
SQL Sous-requête SQL EXISTS SQL ALL SQL ANY / SOME
Index SQL SQL CREATE INDEX
SQL CREATE INDEX
Commentaires en SQL
Fonctions SQL Fonctions d’agrégation SQL AVG() SQL COUNT() SQL MAX() SQL MIN() SQL SUM() Fonctions de chaînes de caractères SQL CONCAT() SQL LENGTH() SQL REPLACE() SQL SOUNDEX() SQL SUBSTRING() SQL LEFT() SQL RIGHT() SQL REVERSE() SQL TRIM() SQL LTRIM() SQL RTRIM() SQL LPAD() SQL UPPER() SQL LOWER() SQL UCASE() SQL LCASE() SQL LOCATE() SQL INSTR() Fonctions mathématiques / numérique SQL RAND() SQL ROUND() Fonctions de dates et d’heures SQL DATE_FORMAT() SQL DATEDIFF() SQL DAYOFWEEK() SQL MONTH() SQL NOW() SQL SEC_TO_TIME() SQL TIMEDIFF() SQL TIMESTAMP() SQL YEAR() Fonctions de chiffrements SQL MD5() SQL CAST() SQL CONVERT() (MySQL et SQL Server) SQL CONVERT() (PostgreSQL et Oracle) SQL ISNULL() SQL GROUP_CONCAT() SQL VERSION()
Fonctions d’agrégation SQL AVG() SQL COUNT() SQL MAX() SQL MIN() SQL SUM()
Fonctions de chaînes de caractères SQL CONCAT() SQL LENGTH() SQL REPLACE() SQL SOUNDEX() SQL SUBSTRING() SQL LEFT() SQL RIGHT() SQL REVERSE() SQL TRIM() SQL LTRIM() SQL RTRIM() SQL LPAD() SQL UPPER() SQL LOWER() SQL UCASE() SQL LCASE() SQL LOCATE() SQL INSTR()
SQL SUBSTRING()
Fonctions mathématiques / numérique SQL RAND() SQL ROUND()
Fonctions de dates et d’heures SQL DATE_FORMAT() SQL DATEDIFF() SQL DAYOFWEEK() SQL MONTH() SQL NOW() SQL SEC_TO_TIME() SQL TIMEDIFF() SQL TIMESTAMP() SQL YEAR()
SQL DATE_FORMAT()
SQL DAYOFWEEK()
SQL SEC_TO_TIME()
SQL TIMESTAMP()
Fonctions de chiffrements SQL MD5()
SQL CONVERT() (MySQL et SQL Server)
SQL CONVERT() (PostgreSQL et Oracle)
SQL GROUP_CONCAT()
Procédure stockée (CREATE PROCEDURE)
Système de Gestion de Base de Données MySQL PostgreSQL MariaDB Oracle Database Microsoft SQL Server SQLite Access OpenOffice.org Base Cassandra Redis MongoDB Neo4j
Oracle Database
Microsoft SQL Server
OpenOffice.org Base
Moteurs de stockage