Fonction ZONED( )

Convertit les données numériques en caractères et ajoute des zéros de tête à la sortie.

Remarque

Dans la plupart des cas, pour ajouter des zéros de début, il est plus facile d'utiliser la fonction LEADINGZEROS( ) que ZONED( ). Consultez la rubriqueFonction LEADINGZEROS( ).

Syntaxe

ZONED(nombre; longueur)

Paramètres

Nom Type Description
nombre

numérique

Valeur numérique à convertir en chaîne.

Remarque

Si vous souhaitez ajouter des zéros de début à une valeur de type caractère contenant une chaîne de caractères numériques, vous devez utiliser la fonction VALUE( ) pour convertir le type de données caractère en type de données numérique avant d'utiliser cette valeur comme entrée de ZONED( ). Pour plus d'informations, consultez la section Fonction VALUE( ).

longueur numérique

Longueur de la chaîne de sortie.

Sortie

Caractère.

Exemples

Exemples basiques

Valeur d'entrée nombre entier

Renvoie "235" :

ZONED(235; 3)

Renvoie "00235" car le paramètre longueur est supérieur au nombre de chiffres dans nombre ; par conséquent, deux zéros de tête sont ajoutés au résultat :

ZONED(235; 5)

Renvoie "35" car le paramètre longueur est inférieur au nombre de chiffres dans nombre ; par conséquent, le chiffre le plus à gauche est tronqué dans le résultat :

ZONED(235; 2)

Valeur d'entrée décimale

Renvoie "23585", car le format de données segmenté ne prend pas en charge de virgule décimale :

ZONED(235,85; 5)

Valeur d'entrée négative

Renvoie "64489M", car le nombre est négatif et "M" représente le dernier chiffre 4 :

ZONED(-6448,94; 6)

Renvoie "489J" car le paramètre longueur est inférieur au nombre de chiffres dans nombre ; par conséquent, les deux chiffres les plus à gauche sont tronqués dans le résultat et le nombre est négatif et "J" représente le dernier chiffre 1 :

ZONED(-6448,91; 4)

Exemples avancés

Ajout de zéros de début à un champ de type caractère contenant des chiffres

Le champ Numéro_employé contient la valeur "254879". Vous devez convertir la valeur en chaînes de 10 chiffres avec des zéros de début.

Astuce

Vous devez utiliser la fonction VALUE( ) pour convertir les données caractère en données numériques avant d'utiliser ces dernières comme entrée de ZONED( ).

COMMENT renvoie "0000254879"
ASSIGN v_longueur_chaîne = 10
ASSIGN v_nombre_décimales = 0
ZONED(VALUE(Numéro_employé; v_nombre_décimales); v_longueur_chaîne)

Harmonisation d'un champ clé lors de la jointure de tables

Vous avez deux tables, Ar et Client, et vous devez les joindre sur le champ NumClient pour une analyse ultérieure. Les deux tables présentent chacune un champ NumClient, mais le format des données est différent :

  • Ar champ numérique (par exemple, 235)
  • Client champ de 5 caractères qui remplit les numéros avec des zéros de tête (par exemple, "00235")

Pour harmoniser les champs lors de la jointure afin que les types de données et les longueurs soient égaux, vous utilisez la fonction ZONED( ) pour convertir le champ clé Ar NumClient en champ de type caractère d'une longueur de 5 pour qu'il corresponde au format du champ clé dans Client :

OPEN Ar PRIMARY
OPEN Client SECONDARY
JOIN PKEY ZONED(NumClient;5) FIELDS NumClient Echéance Montant SKEY NumClient UNMATCHED TO Ar_Client OPEN PRESORT SECSORT

Remarques

Fonctionnement

Cette fonction convertit des données numériques en caractères et ajoute des zéros de tête à la sortie. La fonction est communément utilisée pour harmoniser des champs qui requièrent des zéros de tête (par exemple, un numéro de chèque, un numéro de bon de commande et des champs de numéro de facture).

Quand utiliser ZONED( )

Utilisez cette fonction pour convertir une valeur numérique positive en une valeur de caractère contenant des zéros de tête. Ceci s'avère utile pour la normalisation de données dans des champs destinés à être utilisés comme champs clés.

Par exemple, si une table contient des numéros de facture au format 100 dans un champ numérique, et si une autre table contient des numéros de facture au format "00100" dans un champ de caractères, la fonction ZONED( ) permet de convertir la valeur numérique 100 au format "00100". Ceci permet de comparer des numéros de factures similaires.

Valeurs des longueurs de chaînes et valeurs renvoyées

Des zéros de tête sont ajoutés à la valeur de sortie quand la valeur longueur est supérieure au nombre de chiffres dans nombre. Quand le paramètre longueur est inférieur au nombre de chiffres dans nombre, la sortie est tronquée à partir du côté gauche. Si la valeur nombre est de la même longueur que longueur, aucun zéro n'est ajouté.

Nombres décimaux

Le format de données Zoned n'inclut pas de virgule décimale explicite.

Nombres négatifs

Si le nombre d'entrée est négatif, le chiffre le plus à droite s'affiche sous forme de caractère dans le résultat :

  • "}" pour 0
  • une lettre comprise entre "J" et "R" pour les chiffres 1 à 9

ZONED( ) et l'édition Unicode d'Analytics

Si vous utilisez l'édition Unicode d'Analytics, vous devez utiliser la fonction BINTOSTR( ) pour afficher correctement la valeur renvoyée de la fonction ZONED( ). Vous devez également utiliser la fonction BINTOSTR( ) si vous souhaitez utiliser la valeur renvoyée de la fonction ZONED( ) en tant que paramètre dans une autre fonction.