Question

Nous savons tous que les capacités de manipulation de chaînes de T-SQL laissent parfois beaucoup à désirer...

J'ai un champ numérique qui doit être affiché dans T-SQL sous forme de colonne de texte alignée à droite.Exemple:

Value
----------
   143.55
  3532.13
     1.75

Comment procéderiez-vous?Une bonne solution doit être claire et compacte, mais rappelez-vous qu'il existe une chose telle que "trop ​​intelligente".

Je reconnais que ce n'est pas le bon endroit pour faire cela, mais parfois nous sommes coincés par des forces indépendantes de notre volonté.

Merci.

Était-ce utile?

La solution

Le Fonction STR a un argument de longueur facultatif ainsi qu'un argument de nombre de décimales.

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)

Autres conseils

Le moyen le plus simple consiste à appuyer à gauche :

CREATE FUNCTION PadLeft(@PadString nvarchar(100), @PadLength int)
RETURNS nvarchar(200)
AS
begin
return  replicate(' ',@padlength-len(@PadString)) + @PadString
end
go
print dbo.PadLeft('123.456', 20)
print dbo.PadLeft('1.23', 20)

Si vous DEVEZ le faire en SQL, vous pouvez utiliser le code suivant (ce code suppose que vous n'avez pas de chiffres supérieurs à 40 caractères) :

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top