Ich habe ein varchar Feld, das Zahlen in diesem Format "00001", "00002" usw. enthält. Wenn ich versuche, die nächste Nummer mit Max (Feld) + 1 zu bekommen, bekomme ich eine ganze Zahl "3" zum Beispiel.Holen Sie Max + 1, ohne Nullen zu entfernen
Wie bekomme ich das Ergebnis "00003" statt "3"?
Hier ist ein funktionierendes Beispiel ich habe es nur herausfinden, aber ich denke, dass es muss ein einfacher Weg sein:
SELECT TOP (1)
{ fn REPEAT(0, LEN(ItemId) - LEN(MAX(ItemId) + 1)) } +
CAST(MAX(ItemId) + 1 AS varchar(7)) AS Expr1
FROM Items
GROUP BY ItemId
ORDER BY ItemId DESC
Die letzte Abfrage gibt das korrekte Ergebnis „0004916“
Der wirkliche Test ist, was sollten Sie für '00009',' 00010' oder '000010'? – dasblinkenlight
Mögliches Duplikat von [Formatieren von Zahlen durch Auffüllen mit führenden Nullen in SQL Server] (http://stackoverflow.com/questions/9520661/formatting-numbers-by-padding-with-leading-zeros-in-sql-server) – qxg