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.