SUBSTRING : Extraire une sous-chaîne d'une chaîne source

Comment :

La fonction SUBSTRING extrait une sous-chaîne d'une chaîne source. Si la position de fin que vous avez spécifié pour la sous-chaîne se trouve après la fin de la chaîne source, la position du dernier caractère de la chaîne source devient la position de fin de la sous-chaîne.


Haut de page

x
Syntaxe : Extrait une sous-chaîne d'une chaîne source
SUBSTRING(string, position, length)

où :

string

Alphanumérique

est la chaîne depuis laquelle extraire la sous-chaîne. Il peut s'agir d'un champ, d'un littéral entouré de guillemets simples (‘), ou encore d'une variable.

position

Entier

est la position de départ de la sous-chaîne dans string. Si la position est 0, elle est traitée comme si elle était 1. Si la position est négative, la position de départ est comptée en arrière à partir de la fin de string.

length

Entier

est la longueur maximale de la sous-chaîne. La position de fin de la sous-chaîne est calculée en tant que position + length - 1. Si la position calculée au-delà de la fin de la chaîne , la position du dernier caractère de source_string devient la position de fin.

Le type de données de la valeur renvoyée est AnV.



Exemple : Extraire une sous-chaîne d'une chaîne source

Dans la requête suivante, POSITION détermine la position de la première lettre I dans LAST_NAME; le résultat est stocké dans I_IN_NAME. SUBSTRING extrait ensuite trois caractères commençant par la lettre I à partir de LAST_NAME et stocke le résultat dans I_SUBSTR.

TABLE FILE EMPLOYEE
PRINT
COMPUTE
I_IN_NAME/I2 = POSITION('I', LAST_NAME); AND
COMPUTE
I_SUBSTR/A3 =
SUBSTRING(LAST_NAME, I_IN_NAME, I_IN_NAME+2);
BY LAST_NAME
ON TABLE SET PAGE NOPAGE
END

La sortie est :

  LAST_NAME        I_IN_NAME  I_SUBSTR                  
  ---------        ---------  --------                             
  BANNING                  5  ING     
  BLACKWOOD                0  BL      
  CROSS                    0  CR      
  GREENSPAN                0  GR      
  IRVING                   1  IRV     
  JONES                    0  JO      
  MCCOY                    0  MC      
  MCKNIGHT                 5  IGH     
  ROMANS                   0  RO      
  SMITH                    3  ITH     
                           3  ITH     
  STEVENS                  0  ST    

WebFOCUS