SUBSTR: Como Extrair uma Substring

Como:

Linguagens Disponíveis: Reporting

A função SUBSTR extrai uma substring com base no local onde ela começa na string fonte. SUBSTR pode variar a posição da substring dependendo dos valores de outros campos.


Topo da página

x
Sintaxe: Como Extrair uma substring
SUBSTR(length, source_string, start, end, sublength, output)

onde:

comprimento

Inteiro

É o comprimento da source_string ou um campo que contém o comprimento.

source_string

Alfanumérico

É a string da qual se extrai uma substring entre aspas simples ou o campo que contém a string pai.

iniciar

Inteiro

É a posição inicial da substring na string fonte. Se start for inferior a ou superior a length, a função retornará espaços.

terminar

Inteiro

É a posição final da substring. Se este argumento for inferior a start ou superior a length, a função retornará espaços.

sublength

Inteiro

É o número de caracteres na substring (normalmente fim - início + 1). Se sublength for maior que fim - início + 1, a substring será preenchida com espaços à direita. Se for menor, a substring será truncada. Este valor deve ser o comprimento declarado de output. Somente caracteres de sublength serão processados.

saída

Alfanumérico

É o campo para o qual o resultado é enviado ou o formato do valor de saída posto entre aspas simples.



Exemplo: Como Extrair uma String

POSIT determina a posição da primeira letra I em LAST_NAME e armazena o resultado em I_IN_NAME: Em seguida, SUBSTR extrai os três caracteres que começam com a letra I de LAST_NAME e armazena os resultados em 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

A saída é:

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

Já que Romans e Stevens não possuem I em seus nomes, SUBSTR extrai uma string em branco.


Information Builders