Danke
Gruß
Sven
select isnull(replicate('0', 4 - len(Spalte)), '') + cast(Spalte as
varchar(12)) from Tabelle
Vg
Christoph
Sven schrieb:
> ich habe in meiner Datenbank (SQL Server 2005) eine Spalte mit Zahlen, die
> 1-4stellig sind. Jetzt brauche ich eine Abfrage, die mir die restlichen
> Stellen mit Nullen auffüllt.
SELECT yourField,
CASE WHEN LEN(CAST(yourField AS VARCHAR(10))) < 5
THEN RIGHT('0000' + LTRIM(yourField), 4)
ELSE CAST(yourField AS VARCHAR(10))
END
FROM yourTable
> Gibt es da eine brauchbare Lösung? Ich kenne nur eine Variante, wo man die
> Spalte über ein Update ändern.
Das geht nur, wenn du Textspalten hast...
mfG
--> stefan <--
Du meinst so etwas?
DECLARE @MaxDigits tinyint
SET @MaxDigits = 5
SELECT REPLICATE('0', @MaxDigits - LEN(CONVERT(varchar, IdFeld))) +
CONVERT(varchar, IdFeld)
FROM dbo.myTable
HTH ;-)
--
Gruß, Uwe Ricken
MCP for SQL Server 2000 Database Implementation
db-Berater GmbH - 64390 Erzhausen
http://www.db-berater.de
http://www.memberadmin.de
http://www.conferenceadmin.de
____________________________________________________
dbdev: http://www.dbdev.org
FAQ: http://www.donkarl.com/AccessFAQ.htm
"Sven" <Sv...@discussions.microsoft.com> schrieb im Newsbeitrag
news:EB08B34B-CB8C-4EC9...@microsoft.com...
RIGHT('0000' + DeinFeld , 4)
HTH Jürgen
IMHO am einfachsten geht es mit:
DECLARE @i int, @j int
SELECT @i = 1, @j = 12
SELECT REPLACE(STR(@i, @j), ' ', '0')
--
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org
"Jürgen Volke" wrote:
> Hallo Sven
>
> RIGHT('0000' + DeinFeld , 4)
>
> HTH Jürgen
>
Man sieht das man EINFACH weiter kommt, wenn man nur ein wenig quer denkt.
Eine einfache Lösung, die aber fantastisch funktioniert! :)
Danke!