Função ZONED( )

Converte dados numéricos em dados de caracteres e adiciona zeros à esquerda na saída.

Nota

Você também pode usar a função LEADINGZEROS( ) para adicionar zeros à esquerda o que é, muitas vezes, mais fácil de usar que ZONED( ). Consulte Função LEADINGZEROS( ).

Sintaxe

ZONED(número; comprimento)

Parâmetros

Nome Tipo Descrição
número

numérico

O valor numérico a ser convertido em uma cadeia.

Nota

Se quiser adicionar zeros à esquerda de um valor de caracteres que contém uma cadeia numérica, você precisará usar a função VALUE( ) para converter os caracteres para o tipo de dados numérico antes de usar o valor como entrada para ZONED( ). Para obter mais informações, consulte Função VALUE( ).

comprimento numérico

O comprimento da cadeia de saída.

Saída

Caractere.

Exemplos

Exemplos básicos

Entrada de inteiro

Retorna "235":

ZONED(235; 3)

Retorna "00235" porque comprimento é maior do que o número de dígitos em número, portanto, dois zeros à esquerda são adicionados ao resultado:

ZONED(235; 5)

Retorna "35" porque comprimento é menor do que o número de dígitos em número, portanto, o primeiro dígito à esquerda é truncado do resultado:

ZONED(235; 2)

Entrada de decimal

Retorna "23585" porque o formato de dados zonado não permite ponto decimal:

ZONED(235,85; 5)

Entrada de valores negativos

Retorna "64489M" porque o número é negativo e "M" representa o dígito final 4:

ZONED(-6448,94; 6)

Retorna "489J" porque comprimento é menor do que o número de dígitos em número; portanto, os primeiros dois dígitos à esquerda são truncados do resultado, o número é negativo e "J" representa o dígito final 1:

ZONED(-6448,91; 4)

Exemplos avançados

Adição de zeros à esquerda de um campo de caracteres que contém números

O campo Número_Funcionário contém o valor "254879". Você precisa converter o valor para uma cadeia de 10 dígitos com zeros à esquerda.

Dica

Você precisa usar a função VALUE( ) para converter os caracteres em dados numéricos antes de usar o numeral como entrada para ZONED( ).

COMMENT retorna "0000254879"
ASSIGN v_comprimento_cadeia = 10
ASSIGN v_núm_decimais = 0
ZONED(VALUE(Número_Funcionário; v_núm_decimais); v_comprimento_cadeia)

Harmonização de um campo-chave ao associar tabelas

Você tem duas tabelas, Ar e Cliente, e precisa associá-las pelo campo NúmCliente para análises posteriores. Cada uma das duas tabelas tem um campo NúmCliente, mas o formato de dados é diferente:

  • Ar campo numérico (por exemplo, 235)
  • Cliente campo de 5 caracteres que preenche os números com zeros à esquerda (por exemplo, "00235")

Para harmonizar os campos durante a associação para que os tipos de dados e os comprimentos sejam iguais, você usa a função ZONED( ) para converter o campo-chave NúmCliente de Ar em um campo de caracteres com comprimento 5, que corresponde ao formato do campo-chave de Cliente:

OPEN Ar PRIMARY
OPEN Cliente SECONDARY
JOIN PKEY ZONED(Númclien;5) FIELDS NúmCliente Valor Devido SKEY Númclien UNMATCHED TO Cliente_Ar OPEN PRESORT SECSORT

Observações

Como funciona?

Essa função converte dados numéricos para dados de caractere e adiciona zeros iniciais ao resultado. A função é comumente usada para harmonizar campos que requerem zeros iniciais, por exemplo, número de cheque, número da ordem de compra e os campos de número de fatura.

Quando usar ZONED( )

Utilize a função para converter um valor numérico positivo em um valor de caracteres contendo zeros à esquerda. Isso é útil para a normalização de dados em campos que serão utilizados como campos-chave.

Por exemplo, se uma tabela contiver números de faturas na forma 100 em um campo numérico, e outra tabela contiver números de faturas na forma "00100" em um campo de caracteres, você poderá utilizar ZONED( ) para converter o valor numérico 100 ao valor de caractere "00100". Isso lhe permitirá comparar números de faturas semelhantes.

Comprimento de cadeias e valores de retorno

Os zeros à esquerda são adicionados ao valor de saída quando o comprimento for maior do que o número de dígitos em número. Quando comprimento for menor que o número de dígitos em número, a saída será truncada do lado esquerdo. Se o valor de número tiver o mesmo comprimento do comprimento, não serão adicionados zeros.

Números decimais

O tipo de dados zonado não inclui uma vírgula decimal explícita.

Números negativos

Se o número de entrada for negativo, o dígito mais à direita será exibido como um caractere no resultado:

  • "}" para 0
  • uma letra entre "J" e "R" para os dígitos 1 a 9

ZONED( ) e a edição Unicode do Analytics

Se estiver trabalhando com a edição Unicode do Analytics, você precisará usar a função BINTOSTR( ) para exibir corretamente o valor retornado pela função ZONED( ). Também é preciso usar a função BINTOSTR( ) se desejar usar o valor retornado da função ZONED( ) como um parâmetro em outra função.