SUBSTRING: Estrazione una stringa secondaria da una stringa di origine

Come:

La funzione SUBSTRING estrae una stringa secondaria da una stringa di origine. Se la posizione finale specificata per la stringa secondaria supera la fine della stringa di origine, la posizione dell'ultimo carattere della stringa di origine diventa la posizone finale della stringa secondaria.


Inizio pagina

x
Sintassi: Come estrarre una stringa secondaria da una stringa di origine
SUBSTRING(string, position, length)

dove:

stringa

Alfanumerico

Stringa dalla quale estrarre una sottostringa. Si può trattare di un campo, un valore letterale in virgolette singole ('), o una variabile.

posizione

Valore intero

Posizione iniziale della sottostringa in string. Se la posizione è 0, si tratta come 1. Se la posizione è negativa, la posizione iniziale si conta all'indietro dalla fine di string.

length

Valore intero

Limite per la lunghezza della sottostringa. La posizione finale della sottostringa viene calcolata come position + lenght - 1. Se la posizione calcolata oltre la fine della stringa di origine, la posizione dell'ultimo carattere di _string diventa la posizione finale.

Il tipo di dati della stringa secondaria restituita è AnV.



Esempio: Estrazione di una stringa secondaria da una stringa di origine

Nella seguente richiesta, POSITION determina la posizione della prima lettera I in LAST_NAME e memorizza il risultato in I_IN_NAME. SUBSTRING quindi estrae tre caratteri che iniziano con la lettera I da LAST_NAME e memorizza i risultati in 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

L'emissione è:

  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