Jeg har en streng, der er op til 3 tegn lang, når den først oprettes i SQL Server 2008 R2.
Jeg vil gerne fylde den op med ledende nuller, så hvis dens oprindelige værdi var '1' så ville den nye værdi være '001'. Eller hvis den oprindelige værdi var '23', er den nye værdi '023'. Eller hvis dens oprindelige værdi er '124', er den nye værdi den samme som den oprindelige værdi.
Jeg bruger SQL Server 2008 R2. Hvordan kan jeg gøre dette ved hjælp af T-SQL?
Hvis feltet allerede er en streng, virker dette
SELECT RIGHT('000'+ISNULL(field,''),3)
Hvis du ønsker, at nuller skal vises som '000'
Det kan være et heltal -- så vil du have
SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)
Som krævet af spørgsmålet virker dette svar kun, hvis længden <= 3, hvis du ønsker noget større, skal du ændre strengkonstanten og de to hele talkonstanter til den nødvendige bredde. f.eks.
'0000' og VARCHAR(4)),4
For hele tal kan du bruge implicit konvertering fra int til varchar:
SELECT RIGHT(1000 + field, 3)