Comment utiliser : Générateur de clause SQL IN
- Collez vos valeurs : copiez une colonne depuis Excel ou Google Sheets, ou collez une liste séparée par des virgules.
- Choisissez le format de sortie, le nom de la colonne et de la table, et indiquez si vous voulez utiliser
NOT IN. - Les guillemets sont ajoutés automatiquement : les nombres restent sans guillemets, le texte est encadré de guillemets simples et les apostrophes sont échappées.
- Copiez le SQL dans votre requête. Utilisez des groupes de 1 000 pour Oracle.
Qu’est-ce qu’une clause SQL IN ?
L’opérateur IN vérifie si une valeur correspond à l’un des éléments d’une liste. C’est un raccourci pour une suite de conditions OR, et la façon habituelle de rechercher un lot d’enregistrements dont vous connaissez déjà les identifiants, par exemple une colonne de numéros de commande reçue dans un tableur :
SELECT *
FROM orders
WHERE id IN ('A-1001', 'A-1002', 'B-2040');
Saisir à la main les guillemets et les virgules pour des centaines de valeurs est fastidieux et source d’erreurs. Ce générateur le fait en un seul collage.
Guillemets et échappement
| Saisie | Guillemets automatiques |
|---|---|
1001, 1002 (tous des nombres) | (1001, 1002) |
A-1001, B-2040 | ('A-1001', 'B-2040') |
O'Neil | 'O''Neil' : l’apostrophe est doublée |
| Texte Unicode dans SQL Server | N'Zoë' avec l’option de préfixe N |
Utilisez Toujours lorsqu’une colonne ressemblant à des nombres est stockée sous forme de texte (par exemple des codes postaux ou des numéros de téléphone). La base de données n’a alors pas à convertir les types et peut utiliser son index.
Limites selon la base de données
- Oracle accepte au maximum 1 000 expressions dans une même liste IN (erreur ORA-01795). Définissez des groupes de 1 000 : le générateur les relie par
OR. - SQL Server n’a pas de limite fixe, mais les instructions contenant plusieurs milliers de valeurs sont lentes à analyser ; privilégiez une table temporaire ou un paramètre de type table.
- MySQL est limité par
max_allowed_packet; PostgreSQL peut aussi utiliser un tableau :WHERE id = ANY('{1,2,3}').
Remarque de sécurité
Coller les listes générées convient aux requêtes ponctuelles dans un client de base de données. Dans le code applicatif, ne construisez jamais de SQL en concaténant des saisies utilisateur : utilisez des requêtes paramétrées. Mettez en forme les longues requêtes avec le formateur SQL, et supprimez les lignes en double dans d’autres listes avec Supprimer les lignes en double.
Aussi recherché comme : générateur clause sql in, where in sql, liste vers sql in, colonne excel vers sql in, liste séparée par virgules sql, générateur de liste sql in, valeurs liste sql, clause where in.
Outils complémentaires : Générateur de clause SQL IN
- Générateur CREATE TABLE — Concevez une table colonne par colonne (types, clé primaire, NOT NULL, UNIQUE, auto-incrément et valeurs par défaut) et obtenez la syntaxe CREATE TABLE adaptée à votre base de données.
- CSV et Excel vers SQL — Collez des cellules CSV ou Excel, ou ouvrez un fichier .xlsx, pour obtenir des instructions CREATE TABLE et INSERT prêtes à l’emploi, avec des valeurs correctement échappées pour votre base de données.
- SQL vers JSON, CSV & Excel — Collez un export SQL ou quelques instructions INSERT et récupérez les lignes au format JSON, CSV ou dans un classeur Excel avec une feuille par table.
- Excel vers JSON — Ouvrez un classeur .xlsx ou collez directement des cellules depuis Excel ou Google Sheets pour obtenir un JSON propre.