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

Pingback: Les caractères génériques (« jokers ») - Audit & Systèmes d'Information