La fonction COMPARE retourne le nombre zéro si aucune différence n’existe entre deux chaînes de caractères. Sinon elle retourne la position la position du premier caractère différent.
Dans l’exemple ci-dessous, deux datasets sont créés. Une fois combinés, on s’intéresse à la différence entre la variable LABEL_ONE du premier dataset et la variable LABEL_TWO du second dataset. La première différence a lieu sur la deuxième lettre. La variable DIFF prend donc la valeur 2.
data one;
length start $8 label_one $8;
start='1';
label_one='ABC';
run;
data two;
length start $8 label_two $8;
start='1';
label_two='AbC';
run;
data diff;
merge one two;
by start;
run;
data diff;
set diff;
diff=compare(label_one,label_two);
run;
proc print data=diff;
run;
Vous pouvez ajouter un troisième paramètre dans la fonction si vous ne voulez pas tenir compte des différences de majuscule, de blancs de début de chaîne de caractère,…
Dans quel cas utiliser cette fonction ? Si vous réalisez un rapport listant la différence entre deux valeurs pour pouvoir ensuite les corriger, vous pouvez utiliser cette fonction pour préciser à partir de quel moment la couleur devra changer.
Pour en savoir plus : la documentation SAS 9.2