SUBSTR: Estrazione di una sottostringa

Come:

Lingue disponibili: reporting

La funzione SUBSTR estrae una sottostringa in base alla posizione di inizio e fine nella stringa d'origine. SUBSTR può variare la posizione della sottostringa, a seconda dei valori di altri campi.


Inizio pagina

x
Sintassi: Come estrarre una sottostringa
SUBSTR(length, source_string, start, end, sublength, output)

dove:

length

Valore intero

Numero di caratteri in source_string, o un campo che contiene la lunghezza.

source_string

Alfanumerico

La stringa da cui estrarre una stringa secondaria racchiusa tra virgolette singole, o il campo contenente la stringa principale.

inizio

Valore intero

Posizione iniziale della sottostringa nella stringa d'origine. Se l'inizio è inferiore o superiore alla lunghezza, la funzione restituisce spazi.

fine

Valore intero

Posizione finale della sottostringa. Se questo argomento è inferiore all'inizio o superiore alla lunghezza, la funzione restituisce spazi.

sublength

Valore intero

Il numero in caratteri nella stringa secondaria (di solito fine - inizio + 1). Se sublenght è superiore a fine - inizio +1, la stringa secondaria si riempie con spazi finali. Se inferiore, la stringa secondaria viene troncata. Questo valore deve essere la lunghezza dichiarata di output. Solo i caratteri sottolunghezza verranno elaborati.

emissione

Alfanumerico

Campo che contiene il risultato, o il formato del valore di emissione racchiuso tra virgolette singole.



Esempio: Estrazione di una stringa

POSIT determina la posizione della prima lettera I in LAST_NAME e memorizza il risultato in I_IN_NAME. SUBSTR 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 = 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

L'emissione è:

LAST_NAME      I_IN_NAME  I_SUBSTR
---------      ---------  --------
BANNING                5  ING
IRVING                 1  IRV
MCKNIGHT               5  IGH
ROMANS                 0
SMITH                  3  ITH
STEVENS                0

Poiché i nomi Roman e Steven non presentano I nei loro nomi, SUBSTR estrae una stringa vuota.


WebFOCUS