Dans PostgreSQL, nous pouvons utiliser le TO_CHAR()
fonction pour ajouter des zéros non significatifs à un nombre. La fonction convertit le nombre en chaîne, en utilisant le format (facultatif) que nous spécifions.
Une autre option consiste à utiliser le LPAD()
fonction pour remplir un nombre avec des zéros non significatifs.
Le TO_CHAR()
Fonction
Lors de l'utilisation de TO_CHAR()
fonction, utilisez le 0
élément de format pour inclure des zéros de début et/ou de fin.
Exemple :
SELECT TO_CHAR(7, 'fm000');
Résultat :
007
Le voici par rapport au 9
élément de format :
SELECT
TO_CHAR(7, 'fm999') AS "9",
TO_CHAR(7, 'fm000') AS "0";
Résultat :
9 | 0 ---+----- 7 | 007
Le nombre de zéros non significatifs est déterminé par le nombre de 0
éléments de format et le nombre de chiffres dans le nombre :
SELECT
TO_CHAR(77, 'fm0') AS "r1",
TO_CHAR(77, 'fm00000') AS "r2",
TO_CHAR(777, 'fm00000') AS "r3",
TO_CHAR(7777, 'fm00000') AS "r4",
TO_CHAR(77777, 'fm00000') AS "r5";
Résultat :
r1 | r2 | r3 | r4 | r5 ----+-------+-------+-------+------- # | 00077 | 00777 | 07777 | 77777
Le fm
Le modificateur de format supprime tout rembourrage de début et/ou de fin qui pourrait être inclus dans le résultat. Par exemple, lorsque le nombre est négatif, un signe moins est préfixé. Mais lorsque le nombre est positif, aucun signe n'est inclus et un espace apparaît à la place du signe plus.
Voici un exemple pour illustrer cela :
SELECT
TO_CHAR(-7, '000') AS "Minus Sign",
TO_CHAR(7, '000') AS "Padded",
TO_CHAR(7, 'fm000') AS "Not Padded";
Résultat :
Minus Sign | Padded | Not Padded ------------+--------+------------ -007 | 007 | 007
Le LPAD()
Fonction
Nous pouvons alternativement utiliser le LPAD()
fonction pour remplir les nombres avec des zéros non significatifs :
SELECT LPAD('7', 3, '0');
Résultat :
007
Autre exemple :
SELECT
LPAD('77', 1, '0') AS "r1",
LPAD('77', 5, '0') AS "r2",
LPAD('777', 5, '0') AS "r3",
LPAD('7777', 5, '0') AS "r4",
LPAD('77777', 5, '0') AS "r5";
Résultat :
r1 | r2 | r3 | r4 | r5 ----+-------+-------+-------+------- 7 | 00077 | 00777 | 07777 | 77777
Notez que cette fonction nécessite que le nombre soit passé sous forme de chaîne. Par conséquent, nous devons d'abord convertir le nombre en une chaîne. Le caractère de remplissage doit également être une chaîne.
Nous devrons donc peut-être faire quelque chose comme ceci :
SELECT LPAD(CAST(7 AS varchar), 3, '0');
Résultat :
007
L'un des avantages que LPAD()
a sur la méthode précédente est que nous pouvons préfixer le résultat d'autres caractères - il n'a pas besoin d'être un zéro non significatif.
SELECT
LPAD('77', 1, '.') AS "r1",
LPAD('77', 5, '.') AS "r2",
LPAD('777', 5, '.') AS "r3",
LPAD('7777', 5, '.') AS "r4",
LPAD('77777', 5, '.') AS "r5";
Résultat :
r1 | r2 | r3 | r4 | r5 ----+-------+-------+-------+------- 7 | ...77 | ..777 | .7777 | 77777