Fonction AT( )
Renvoie un nombre indiquant l'emplacement de début d'une occurrence spécifique d'une sous-chaîne dans une valeur de caractère.
Syntaxe
AT(num_occurrence; chaîne_recherchée; dans_texte)
Paramètres
Nom | Type | Description |
---|---|---|
num_occurrence |
numérique |
Occurrence (instance) de chaîne_recherchée dont renvoyer l'emplacement. Par exemple, spécifiez 1 pour renvoyer l'emplacement de départ de la première occurrence de chaîne_recherchée. |
chaîne_recherchée |
caractère |
Sous-chaîne à rechercher dans dans_texte. Cette valeur est sensible à la casse. Si chaîne_recherchée inclut des guillemets doubles, il est nécessaire d'entourer la valeur de guillemets simples : AT(1;'"test"'; Description) |
dans_texte | caractère |
Valeur dans laquelle effectuer la recherche. Vous pouvez concaténer deux champs ou plus dans le paramètre dans_texte si vous souhaitez que votre recherche porte sur plusieurs champs d'une table : AT(1;'"test"'; Description+Résumé) |
Sortie
Numérique. Renvoie la position d'octet de départ de l'occurrence indiquée pour la valeur chaîne_recherchée. Renvoie 0 si aucune correspondance n'existe.
Exemples
Exemples basiques
Occurrences trouvées
Renvoie 4 :
AT(1; "-"; "604-669-4225")
Renvoie 8 :
AT(2; "-"; "604-669-4225")
Occurrences non trouvées
Renvoie 0 parce qu'il n'y a pas de troisième trait d'union dans la chaîne.
AT(3; "-"; "604-669-4225")
Renvoie 0 parce qu'il n'y a pas de quatrième lettre "a" en minuscule dans la chaîne.
AT(4; "a"; "Alabama")
Groupes de caractères
Renvoie 5 :
AT(2; "iss"; "Mississippi")
Rechercher dans un champ
Renvoie la position d'octet du premier trait d'union dans chaque valeur du champ No_Facture :
AT(1; "-"; No_Facture)
Exemples avancés
Recherche de numéros de factures dans lesquels le deuxième trait d'union apparaît après la position du dixième octet
Vous pouvez analyser la cohérence des numéros de facture dans une table à l'aide de la fonction AT( ) pour créer un filtre comme celui ci-dessous. Ce filtre isole tous les enregistrements dans lesquels le numéro de facture contient au moins 2 traits d'union et dont le deuxième trait d'union se place après la position du dixième octet :
SET FILTER TO AT(2; "-"; No_Facture) > 10
Remarques
Quand utiliser la fonction AT( )
Utilisez cette fonction pour récupérer les positions de départ suivantes à l'intérieur d'une valeur de type caractère :
- position de départ d'une sous-chaîne
- position de départ d'une occurrence suivante de la sous-chaîne
Si vous souhaitez uniquement confirmer plusieurs occurrences de la même sous-chaîne dans un champ, il est conseillé d'utiliser la fonction OCCURS( ). Pour plus d'informations, consultez la section Fonction OCCURS( ).
Valeur renvoyée lorsque num_occurrence dépasse le nombre d'occurrences
Si num_occurrence est supérieure au nombre réel d'occurrences dans la sous-chaîne dans dans_texte, la fonction renvoie 0 parce que cette occurrence est introuvable dans la sous-chaîne.
Champs concaténés et valeurs renvoyées
Lorsque vous effectuez une recherche dans plusieurs champs, la valeur renvoyée pour l'instance est l'emplacement de départ de chaîne_recherchée dans tous les champs que vous spécifiez. Les champs concaténés sont traités comme un seul champ incluant les espaces de début et de fin des champs individuels sauf si vous utilisez la fonction ALLTRIM( ) pour supprimer les espaces.
Par exemple, si vous recherchez la première occurrence d'une chaîne dans deux champs d'une largeur de huit caractères chacun et que la chaîne est recherchée au début du deuxième champ, la valeur renvoyée est 9.