Recadrer une zone alpha, avec un zero significatif en sql

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.

Print Friendly, PDF & Email