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.