Résumé :dans ce tutoriel, vous apprendrez à utiliser le SQLite SELECT DISTINCT
clause pour supprimer les lignes en double dans le jeu de résultats.
Introduction à SQLite SELECT DISTINCT
clause
Le DISTINCT
la clause est une clause facultative du SELECT
déclaration. Le DISTINCT
La clause vous permet de supprimer les lignes en double dans le jeu de résultats.
L'instruction suivante illustre la syntaxe du DISTINCT
clause :
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
Dans cette syntaxe :
- Tout d'abord, le
DISTINCT
la clause doit apparaître immédiatement après leSELECT
mot-clé. - Deuxièmement, vous placez une colonne ou une liste de colonnes après le
DISTINCT
mot-clé. Si vous utilisez une colonne, SQLite utilise les valeurs de cette colonne pour évaluer le doublon. Si vous utilisez plusieurs colonnes, SQLite utilise la combinaison de valeurs dans ces colonnes pour évaluer le doublon.
SQLite considère NULL
valeurs en double. Si vous utilisez le DISTINCT
clause avec une colonne qui a NULL
valeurs, SQLite conservera une ligne d'un NULL
valeur.
En théorie des bases de données, si une colonne contient NULL
valeurs, cela signifie que nous ne disposons pas des informations sur cette colonne d'enregistrements particuliers ou que les informations ne sont pas applicables.
Par exemple, si un client a un numéro de téléphone avec un NULL
valeur, cela signifie que nous n'avons pas d'informations sur le numéro de téléphone du client au moment de l'enregistrement des informations client ou que le client peut ne pas avoir de numéro de téléphone du tout.
SQLite SELECT DISTINCT
exemples
Nous utiliserons les customers
table dans l'exemple de base de données pour la démonstration.
Supposons que vous souhaitiez connaître les villes où se trouvent les clients, vous pouvez utiliser le SELECT
déclaration pour obtenir des données de la city
colonne des customers
tableau comme suit :
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Il renvoie 59 lignes. Il y a peu de lignes en double telles que Berlin
London
, et Mountain View
Pour supprimer ces lignes en double, vous utilisez le DISTINCT
clause comme suit :
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Il renvoie 53 lignes car le DISTINCT
clause a supprimé 6 lignes en double.
SQLite SELECT DISTINCT
sur plusieurs colonnes
L'instruction suivante trouve les villes et les pays de tous les clients.
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Le jeu de résultats contient une ville et un pays en double, par exemple, Sao Paulo au Brésil, comme indiqué dans la capture d'écran ci-dessus.
Pour supprimer la ville et le pays en double, vous appliquez le DISTINCT
clause aux colonnes de la ville et du pays, comme indiqué dans la requête suivante :
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Voici la sortie partielle :
Comme mentionné précédemment, SQLite utilise la combinaison de la ville et du pays pour évaluer le doublon.
SQLite SELECT DISTINCT
avec NULL
exemple
Cette instruction renvoie les noms des entreprises des clients à partir des customers
tableau.
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Il renvoie 59 lignes avec de nombreux NULL
valeurs.
Maintenant, si vous appliquez le DISTINCT
clause à l'instruction, elle ne conservera qu'une seule ligne avec un NULL
valeur.
Voir la déclaration suivante :
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
L'instruction renvoie 11 lignes avec un NULL
valeur.
Notez que si vous sélectionnez une liste de colonnes dans une table et souhaitez obtenir une combinaison unique de certaines colonnes, vous pouvez utiliser le GROUP BY
clause.
Dans ce didacticiel, vous avez appris à supprimer les lignes en double d'un jeu de résultats à l'aide de SQLite SELECT DISTINCT
clause.