Jeg har en streng som er opptil 3 tegn lang når den først ble opprettet i SQL Server 2008 R2.
Jeg vil gjerne fylle den med ledende nuller, så hvis den opprinnelige verdien var '1', vil den nye verdien være '001'. Eller hvis den opprinnelige verdien var '23', er den nye verdien '023'. Eller hvis den opprinnelige verdien er '124', er den nye verdien den samme som den opprinnelige verdien.
Jeg bruker SQL Server 2008 R2. Hvordan gjør jeg dette med T-SQL?
Hvis feltet allerede er en streng, vil dette fungere.
SELECT RIGHT('000'+ISNULL(field,''),3)
Hvis du vil at null skal vises som '000'
Det kan være et heltall - da vil du ønske at
SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)
Som påkrevd av spørsmålet fungerer dette svaret bare hvis lengden <= 3, hvis du vil ha noe større, må du endre strengkonstanten og de to heltallskonstantene til bredden som trengs. f.eks
'0000' og VARCHAR(4)),4
For heltall kan du bruke implisitt konvertering fra int til varchar:
SELECT RIGHT(1000 + field, 3)