Maison >base de données >tutoriel mysql >Comment formater des valeurs entières avec des zéros non significatifs dans SQL Server ?

Comment formater des valeurs entières avec des zéros non significatifs dans SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-10 20:37:44991parcourir

How to Format Integer Values with Leading Zeros in SQL Server?

Formatage des nombres avec des zéros non significatifs dans SQL Server

Dans SQL Server, vous pouvez rencontrer des situations dans lesquelles vous devez formater une valeur numérique avec des zéros non significatifs pour améliorer l'efficacité de l'affichage ou du transfert de données. Abordons cela avec un exemple concret :

Question :

Nous avons une table SQL qui contient les numéros d'employé stockés sous forme de chaînes de 6 caractères (par exemple, de « 000001 » à « 999999 »). Nous souhaitons créer un nouveau tableau dans lequel les numéros d'emploi sont des nombres entiers pour améliorer le traitement des données. Comment puis-je modifier ma requête SQL pour formater la valeur entière renvoyée comme « 000000 » (avec des zéros non significatifs) ?

Réponse :

Pour réaliser ce formatage, nous pouvons utiliser les fonctions REPLICATE() et LEN() :

<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(EmployeeID)) + EmployeeID</code>

Voici comment cela fonctionne :

  • REPLICATE('0', 6 - LEN(EmployeeID)) Crée une chaîne nulle dont la longueur est égale à 6 moins la longueur de EmployeeID.
  • Cette chaîne de zéros est ensuite concaténée avec l'EmployeeID à l'aide de l'opérateur, ce qui donne une chaîne formatée avec des zéros non significatifs.

Par exemple, si l'EmployeeID est 7135, la requête renverra « 007135 ».

Remarque :

  • Si la colonne EmployeeID est déclarée comme INT, vous pouvez implicitement la convertir en VARCHAR à l'aide de la fonction RTRIM() :
<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(RTRIM(EmployeeID))) + RTRIM(EmployeeID)</code>
  • Pour supprimer les zéros non significatifs et obtenir le numéro d'origine, utilisez la requête suivante :
<code class="language-sql">SELECT RIGHT(EmployeeID, (LEN(EmployeeID) - PATINDEX('%[^0]%', EmployeeID)) + 1)</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn