Comment : |
Langages disponibles : reporting
La fonction SUBSTR extrait une sous-chaîne basée sur l'endroit où elle commence et sur sa longueur dans la chaîne source. SUBSTR peut modifier la position de la sous-chaîne selon les valeurs des autres champs.
SUBSTR(length, source_string, start, end, sublength, output)
où :
Entier
est le nombre de caractères dans source_string, ou un champ qui contient la longueur.
Alphanumérique
est la chaîne à partir de laquelle extraire une sous-chaîne encadrée par des guillemets simples, ou le champ contenant la chaîne parente.
Entier
est la position de départ de la sous-chaîne dans la chaîne source. Si start est est inférieur à un ou supérieur à length, la fonction renvoie des espaces.
Entier
est la position finale de la sous-chaîne. Si cet argument est inférieur à start ou supérieur à length, la fonction renvoie des espaces.
Entier
est le nombre de caractères de la sous-chaîne (généralement fin - début +1) Si sublength est plus longue queend-,start+1, la sous-chaîne est remplie avec des espaces rampants. Si c'est plus court, la sous-chaîne est tronquée. Cette valeur devrait être la longueur déclarée dans output. Seuls les caractères sublength seront traités.
Alphanumérique
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.
POSIT détermine la position de la première lettre I dans LAST_NAME; le résultat est stocké dans I_IN_NAME : SUBSTR extraits ensuite trois caractères commençant par la lettre I à partir de LAST_NAME; le résultat est stocké dans I_SUBSTR.
TABLE FILE EMPLOYEE PRINT COMPUTE I_IN_NAME/I2 = POSIT(LAST_NAME, 15, 'I', 1, 'I2'); AND COMPUTE I_SUBSTR/A3 = SUBSTR(15, LAST_NAME, I_IN_NAME, I_IN_NAME+2, 3, I_SUBSTR); BY LAST_NAME WHERE DEPARTMENT EQ 'PRODUCTION' END
La sortie est :
LAST_NAME I_IN_NAME I_SUBSTR --------- --------- -------- BANNING 5 ING IRVING 1 IRV MCKNIGHT 5 IGH ROMANS 0 SMITH 3 ITH STEVENS 0
Romans and Stevens n'ayant aucun I dans leurs noms, SUBSTR extrait une chaîne vide.
Information Builders |