Função ZONED( )
Converte dados numéricos em dados de caracteres e adiciona zeros à esquerda na saída.
Nota
Se estiver usando a edição Unicode do Analytics, você precisará aninhar a função ZONED( ) dentro da função BINTOSTR( ) para exibir corretamente o valor retornado por ZONED( ).
Você também precisará aninhar ZONED( ) dentro de BINTOSTR( ) se quiser usar o valor retornado de ZONED( ) como parâmetro em outra função.
Se a sua meta for adicionar zeros à esquerda aos valores em um campo, você poderá usar a função LEADINGZEROS( ) em vez de ZONED( ). Em muitos casos, LEADINGZEROS( ) é mais fácil de usar que ZONED( ). LEADINGZEROS( ) é compatível nas edições Unicode e não Unicode do Analytics.
Para obter mais informações, consulte Função BINTOSTR( ) e 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