Função SUBSTR( )
Retorna uma subcadeia especificada de uma cadeia.
Sintaxe
SUBSTR(cadeia; início; comprimento)
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
cadeia | caractere |
O campo, expressão ou valor literal do qual deve ser extraída a subcadeia. |
início | numérico |
A posição de caractere inicial da subcadeia. As posições numéricas dos caracteres na cadeia começam em 1. Para extrair uma subcadeia começando com C na cadeia ABCDEF, você especificaria um valor de início de 3. |
comprimento | numérico |
O número de caracteres na subcadeia. Se o comprimento for 0, a saída será em branco. |
Saída
Caractere.
Exemplos
Exemplos básicos
Entrada de caracteres literais
Retorna "BCD":
SUBSTR("ABCDEF"; 2; 3)
Retorna "EF":
SUBSTR("ABCDEF"; 5; 10)
Análise de dados de caracteres estruturados
Retorna "189543":
SUBSTR("***189543***"; 4; 6)
Retorna o ano de quatro dígitos de um campo de caracteres contendo datas formatadas como "MM/DD/AAAA":
SUBSTR(DATE; 7; 4)
Exemplos avançados
Aumento do comprimento do campo
Use SUBSTR( ) para aumentar o comprimento de um campo de caracteres. O aumento do comprimento de um campo é uma tarefa normal de harmonização que pode ser necessária antes de associar ou anexar dois campos.
O exemplo abaixo preenche o campo Descrição_Produto com espaços em branco para criar o campo calculado Descrição_Produto_Longa com um comprimento de 50 caracteres.
DEFINE FIELD Descrição_Produto_Longa COMPUTED SUBSTR(Descrição_Produto; 1; 50)
Observações
Como funciona
A função SUBSTR( ) retorna caracteres do valor cadeia a partir da posição de caractere especificada por início. O número de caracteres retornados é especificado pelo comprimento.
Como a função SUBSTR( ) processa espaços
Os espaços à esquerda, à direita ou internos no valor da cadeia são tratados como caracteres. Os espaços capturados por início e comprimento são incluídos na cadeia de saída.
Como o preenchimento funciona
Se o valor do comprimento exceder o número de caracteres, incluindo brancos à direita, da posição início até o final da cadeia, a cadeia de saída poderá ou não ser preenchida com espaços à direita.
Preenchido com espaços
Se usar SUBSTR( ) em um comando que cria um campo, a saída é preenchida com espaços.
Preenchimento ao criar um campo calculado
Cria o campo calculado Descrição_Produto_Longa com um comprimento de 50 caracteres e baseado no campo físico Descrição_Produto, que tem 24 caracteres:
DEFINE FIELD Descrição_Produto_Longa COMPUTED SUBSTR(Descrição_Produto; 1; 50)
Preenchimento ao extrair um campo físico
Extrai Descrição_Produto_Longa com um comprimento de 50 caracteres para uma nova tabela com base no campo físico Descrição_Produto, que tem 24 caracteres:
EXTRACT FIELDS SUBSTR(Descrição_Produto; 1; 50) AS "Descrição_Produto_Longa" TO Nova_Tabela
Não preenchido com espaços
Se usar SUBSTR( ) em uma definição de variável ou expressão, a saída não é preenchida com espaços.
Sem preenchimento ao definir uma variável
Cria a variável v_desc_prod com um comprimento de 24 caracteres, baseado no comprimento do campo Descrição_Produto:
ASSIGN v_desc_prod = SUBSTR(Descrição_Produto; 1; 50)
Nota
Mesmo que SUBSTR( ) especifique um comprimento de 50 caracteres, a saída será limitada ao comprimento do campo Descrição_Produto.
Funções relacionadas
SUBSTR( ) e SPLIT( ) retornam um segmento de dados de uma cadeia de origem maior.
- SPLIT( ) identifica o segmento de acordo com uma posição de caractere numérica.
- SPLIT( ) identifica o segmento de acordo com um caractere separador.