Dans une clause WHERE, l’opérateur LIKE permet d’effectuer une comparaison partielle entre le contenu d’un champ de données et une chaîne de caractères. LIKE est un opérateur de comparaison spécifique au langage de requête SQL.
Si la comparaison est réalisée, elle renvoie True sinon False.
L’utilisation de l’opérateur LIKE conjointement aux jokers (*, ?) permet une grande diversité de comparaisons. Les jokers remplacent n’importe quel caractère (? remplace un caractère, * en remplace plusieurs).
Contexte d’utilisation :
WHERE champ LIKE comparaison
Exemples de comparaisons avec des jokers :
- LIKE “P*” : chaîne commençant par la lettre P
- LIKE “*P” : chaîne se terminant par la lettre P
- LIKE “*P*” : chaîne comprenant la lettre P
Exemple d’utilisation de l’opérateur LIKE :
SELECT [_ECRITURES].CodeEntité, [_ECRITURES].EcritureNum, [_ECRITURES].JournalCode, [_ECRITURES].JournalLib, [_ECRITURES].EcritureDateComptable, [_ECRITURES].CompteNumHarmonisé, [_ECRITURES].CompteNum, [_ECRITURES].CompteLib, [_ECRITURES].CompteAuxNum, [_ECRITURES].CompteAuxLib, [_ECRITURES].EcritureLib, [_ECRITURES].Débit, [_ECRITURES].Crédit, [_ECRITURES].Solde, [_ECRITURES].PièceRéf, [_ECRITURES].PièceDate FROM _ECRITURES WHERE [_ECRITURES].TypeJournal="VENTES" AND [_ECRITURES].SchémEcrit_Cpte6xSens Like "*70[0-8]???xD+*";
Dans cet exemple issu du programme d’analyse de données comptables PADoCC, l’opérateur LIKE renverra True si le champ SchémEcrit_Cpte6xSens comprend (*…*) une chaîne composée des caractères 70 puis d’un chiffre de 0 à 8 ([0-8]) puis trois caractères indifférents puis xD+. Cette comparaison permet de ne lister que les écritures comptables comprenant un compte de chiffre d’affaires commençant pas 700 à 708 qui est débité (en clair : annulation de chiffre d’affaires).
Exemples de comparaisons reprises du support technique Microsoft :
|
Modèle |
Correspondance (renvoie la valeur Vrai) |
Aucune correspondance (renvoie la valeur Faux) |
---|---|---|---|
Plusieurs caractères | a*a | aa, aBa, aBBBa | aBC |
*ab* | abc, AABB, Xab | aZb, bac | |
Caractère spécial | a[*]a | a*a | aaa |
Plusieurs caractères | ab* | abcdefg, abc | cab, aab |
Caractère isolé | a?a | aaa, a3a, aBa | aBBBa |
Chiffre isolé | a#a | a0a, a1a, a2a | aaa, a10a |
Plage de caractères | [a-z] | f, p, j | 2, & |
Hors d’une plage | [!a-z] | 9, &, % | b, a |
Pas un chiffre | [!0-9] | A, a, &, ~ | 0, 1, 9 |
Combinaison | a[!b-m]# | An9, az0, a99 |
abc, aj0 |
Approfondir le sujet : Maîtriser le langage de requête SQL / les opérateurs / Analyse de données
Derniers articles parBenoît RIVIERE (voir tous)
- Fusionner plusieurs fichiers PDF avec Python - mardi 23 juillet 2024
- Révisez les comptes d’une entreprise à partir de son FEC - lundi 15 juillet 2024
- Clôtures comptables : analysez vos FEC avant de les archiver… - dimanche 30 juin 2024
- Excel : collecter des données juridiques sur les entreprises avec l’API SIRENE – 2ème partie : base SIRET (établissements) - lundi 27 mai 2024
- Analyse de données & FEC provisoire : créer des numéros d’écriture avec un script Python - samedi 27 avril 2024
Pingback: Les caractères génériques (« jokers ») - Audit & Systèmes d'Information