Auffüllen einer Zeichenfolge mit führenden Nullen, so dass sie in SQL Server 2008 3 Zeichen lang ist

Ich habe eine Zeichenfolge, die bis zu 3 Zeichen lang ist, wenn es zuerst in SQL Server 2008 R2 erstellt wird.

Ich möchte sie mit führenden Nullen auffüllen, so dass, wenn der ursprüngliche Wert '1' war, der neue Wert '001' sein würde. Oder wenn der ursprüngliche Wert '23' war, ist der neue Wert '023'. Oder wenn der ursprüngliche Wert '124' ist, dann ist der neue Wert derselbe wie der ursprüngliche Wert.

Ich verwende SQL Server 2008 R2. Wie würde ich dies mit T-SQL tun?

Lösung

Wenn das Feld bereits eine Zeichenkette ist, funktioniert dies

 SELECT RIGHT('000'+ISNULL(field,''),3)

Wenn Sie möchten, dass Nullen als '000&#39 angezeigt werden;

Es könnte eine ganze Zahl sein - dann würden Sie wollen

 SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)

Wie in der Frage gefordert, funktioniert diese Antwort nur, wenn die Länge

Kommentare (14)

Für diejenigen, die ihre bestehenden Daten aktualisieren möchten, ist hier die Abfrage:

update SomeEventTable set eventTime=RIGHT('00000'+ISNULL(eventTime, ''),5)
Kommentare (0)

Für Ganzzahlen können Sie die implizite Konvertierung von int nach varchar verwenden:

SELECT RIGHT(1000 + field, 3)
Kommentare (1)