2011-01-11 12 views
7

Sehr einfach im SQL Server T-SQL-Sprachgebrauch, wie konvergieren Sie die Zahl 9 mit der Zeichenfolge N'00009 '?Wie formatieren Sie eine Zahl in eine Zeichenfolge mit aufgefüllten Nullen?

+3

Normalerweise würden Sie Ihre UI diesen Job machen lassen ... –

+2

Normalerweise würde ich meine mittlere Schicht diesen Job nicht meine UI machen lassen, aber in diesem Fall würde das nicht funktionieren, weshalb ich die Frage stelle. – Jordan

Antwort

18

können Sie

versuchen
SELECT RIGHT('00000' + CAST(number AS NVARCHAR), 5) 

Das Ergebnis ist eine Zeichenfolge, kein Nummerntyp wird.

+0

Brilliant, das funktioniert wunderbar. :) Danke – Jordan

+0

Ich bin mir nicht sicher, funktioniert das, wenn die Nummer '143' ist? Würde '00143' zurückgegeben oder' 00000143'? @ Jordan: Google-Suche nach "Sql Server Padding-Funktion", um Implementierungen von "Lpad" und "Rpad" zu sehen. Scheint normalerweise "replizieren" und "len". – FrustratedWithFormsDesigner

+1

@FRtrated - Nein, es dauert nur die 5 am weitesten rechts stehenden Zeichen nach der Verkettung. –

1

können Sie verwenden:

SELECT REPLICATE('0',5-LEN('9'))+'9' 

Das Ergebnis ist Zeichenfolge

+1

Etwas mehr wie dies würde besser funktionieren: 'SELECT REPLICATE ('0', 5-LEN (CAST (Nummer AS NVARCHAR))) + CAST (Nummer AS NVARCHAR)' – Jordan

1

Wenn Sie auf SQL Server sind 2012 oder höher können Sie auch die FORMAT Funktion:

SELECT FORMAT(1, '00000') AS PaddedNumber 

Es formatiert alle Arten von Sachen schön ...

Verwandte Themen