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)
- Projet IXP (v1.2beta) : quelques nouvelles de mon interpréteur d’expressions - dimanche 1 décembre 2024
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
Pingback: Les caractères génériques (« jokers ») - Audit & Systèmes d'Information