Accueil du site > Les articles > Recadrer une zone alpha, avec un zero significatif en sql
Version à imprimer Enregistrer au format PDF

Recadrer une zone alpha, avec un zero significatif en sql

mardi 15 mai 2007, par David Malle Visites  3120

Comment recadrer une zone numérique stockée dans un champ alpha, à droite avec un ou plusieurs zero significatifs à gauche. En sql, c’est très facile.


Cas pratique

Cas classique, un code postal 06003 pour Nice, que l’on a dans un fichier en 6003. Et bien sur, ce n’est pas le seul.

Requête SQL

UPDATE FICHIER
      SET CODPOS =  REPEAT('0', 5 - CHARACTER_LENGTH(TRIM(CODPOS)))
      CONCAT TRIM(CODPOS)
WHERE CHARACTER_LENGTH(TRIM(CODPOS)) < 5

Explications

- FICHIER est le fichier que l’on souhaite mettre à jour.
- CODPOS est la zone qui contient le code postal. Elle est d’au moins 5 caractères (on stocke un code postal, je vous le rappel). Mais elle peut être plus longue, cela ne pose pas de soucis à la requête.
- L’instruction REPEAT permet de répéter autant de fois le caractère 0, pour compléter jusque 5 caractères.
- Le CONCAT permet de concaténer aux 0 ajoutés, le code déjà stocké.
- Le WHERE permet de ne travailler que sur les codes qui n’ont pas les 5 caractères requis.
- Dans un cas réel, attention aux codes postaux outre mer, cela ne fonctionnerai pas pour eux.