Partager via


InStr (MDX)

Retourne la position de la première occurrence d'une chaîne dans une autre chaîne.

Syntaxe

InStr([start, ]searched_string, search_string[, compare])  

Arguments

start
(Facultatif) Expression numérique qui définit la position de début de chaque recherche. Si cette valeur est omise, la recherche démarre au niveau du premier caractère. Si start est Null, la valeur de retour de fonction n'est pas définie.

searched_string
Expression de chaîne à rechercher.

search_string
Expression de chaîne à rechercher.

Compare
(facultatif) Valeur entière. Cet argument est toujours ignoré. Il est défini pour la compatibilité avec d’autres fonctions Instr dans d’autres langages.

Valeur renvoyée

Valeur entière avec la position de départ de String2 dans String1.

En outre, la fonction InStr retourne les valeurs répertoriées dans le tableau suivant en fonction de la condition :

Condition Valeur retournée
String1 est de longueur nulle zéro (0)
String1 a la valeur null non défini
String2 est de longueur nulle start
String2 a la valeur null non défini
String2 est introuvable zéro (0)
start est supérieur à Len(String2) zéro (0)

Notes

Avertissement

Instr effectue toujours une comparaison qui ne respecte pas la casse.

Exemple

L’exemple suivant montre l’utilisation de la fonction Instr et montre différents scénarios de résultats.

with   
    member [Date].[Date].[Results] as "Results"  
    member measures.[lowercase found in lowercase string] as InStr( "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[uppercase found in lowercase string] as InStr( "abcdefghijklmnñopqrstuvwxyz", "O")  
    member measures.[searched string is empty]            as InStr( "", "o")  
    member measures.[searched string is null]             as iif(IsError(InStr( null, "o")), "Is Error", iif(IsNull(InStr( null, "o")), "Is Null","Is undefined"))  
    member measures.[search string is empty]              as InStr( "abcdefghijklmnñopqrstuvwxyz", "")  
    member measures.[search string is empty start 10]     as InStr(10, "abcdefghijklmnñopqrstuvwxyz", "")  
    member measures.[search string is null]               as iif(IsError(InStr( null, "o")), "Is Error", iif(IsNull(InStr( null, "o")), "Is Null","Is undefined"))  
    member measures.[found from start 10]                 as InStr( 10, "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[NOT found from start 17]             as InStr( 17, "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[NULL start]                          as iif(IsError(InStr( null, "abcdefghijklmnñopqrstuvwxyz", "o")), "Is Error", iif(IsNull(InStr( null, "abcdefghijklmnñopqrstuvwxyz", "o")), "Is Null","Is undefined"))  
    member measures.[start greater than searched length]  as InStr( 170, "abcdefghijklmnñopqrstuvwxyz", "o")  
  
select  [Results] on columns,  
       { measures.[lowercase found in lowercase string]  
       , measures.[uppercase found in lowercase string]  
       , measures.[searched string is empty]  
       , measures.[searched string is null]  
       , measures.[search string is empty]  
       , measures.[search string is empty start 10]  
       , measures.[search string is null]  
       , measures.[found from start 10]  
       , measures.[NOT found from start 17]  
       , measures.[NULL start]   
       , measures.[start greater than searched length]  
       } on rows  
  
from [Adventure Works]  

Le tableau suivant présente les résultats obtenus.

Champ dans les mesures Résultats
minuscules trouvées dans la chaîne en minuscules 16
majuscules trouvées dans la chaîne en minuscules 16
la chaîne de recherche est vide 0
la chaîne de recherche est Null Non défini
chaîne de recherche est vide 1
la chaîne de recherche est start 10 vide 10
chaîne de recherche a la valeur Null Non défini
trouvé à partir de start 10 16
introuvable à partir de start 17 0
start Null Non défini
start est supérieur à la longueur recherchée 0