Post by SvenHallo,
ich habe eine Spalte in meiner Tabelle, dessen Wert zwischen 7 und 9 Stellen
hat. ich brauche den Wert aber 9-stellig.
Wie kann ich die Werte mit Nullen auffüllen?
Gruß
Sven
create procedure [fuehrende0]
@Tabelle VARCHAR(4000),
@Spalte VARCHAR(4000)
AS
BEGIN
DECLARE @maxlaenge INT
DECLARE @laenge INT
DECLARE @sql NVARCHAR(4000)
DECLARE @id INT
-- Minimale berechnen
SET @sql = '(SELECT @p1 = MIN(LEN(' + @Spalte + ')) FROM ' + @Tabelle
+ ')'
EXEC sp_executesql @sql,N'@p1 INT OUTPUT', @id OUTPUT
SET @laenge = @id
-- Maximale Länge
SET @sql = '(SELECT @p1 = MAX(LEN(' + @Spalte + ')) FROM ' + @Tabelle
+ ')'
EXEC sp_executesql @sql,N'@p1 INT OUTPUT', @id OUTPUT
SET @maxlaenge = @id
WHILE @laenge < @maxlaenge
BEGIN
SET @sql = 'UPDATE ' + @Tabelle +
' SET ' + @Spalte + ' = ' + '''0'' + ' + @Spalte +
' WHERE LEN(' + @Spalte + ') <> ' + CONVERT(nvarchar(2),@maxlaenge)
exec(@sql)
SET @sql = '(SELECT @p1 = MIN(LEN(' + @Spalte + ')) FROM ' +
@Tabelle + ')'
EXEC sp_executesql @sql,N'@p1 INT OUTPUT', @id OUTPUT
SET @laenge = @id
END
END
Füllt die Spalte links mit Nullen, bis zur längsten Zeichenkette
Ausführen mit
exec fuehrende0 Tabellenname,Spaltenname
Greets
Bernhard