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)
- Initiation à la programmation en Basic : nouveau compilateur FreeBASIC - lundi 18 mars 2024
- Retrogaming : (re)jouer aux jeux vidéo d’antan - lundi 11 mars 2024
- Télécharger gratuitement des listes d’entreprises et de leurs établissements (fichier SIRENE) - lundi 4 mars 2024
- Règlement ANC n° 2022-06 relatif à la modernisation des états financiers : 7ème partie – Wébinaire CNAM/CNOEC - lundi 26 février 2024
- IA Robotique & Cybersécurité - lundi 19 février 2024
Pingback: Les caractères génériques (« jokers ») - Audit & Systèmes d'Information