Minulla on merkkijono, joka on enintään 3 merkkiä pitkä, kun se luodaan ensimmäisen kerran SQL Server 2008 R2:ssa.
Haluaisin täyttää sen etunollilla, joten jos sen alkuperäinen arvo oli '1', uusi arvo olisi '001'. Tai jos sen alkuperäinen arvo oli '23' uusi arvo on '023'. Tai jos sen alkuperäinen arvo on '124' niin uusi arvo on sama kuin alkuperäinen arvo.
Käytän SQL Server 2008 R2 -palvelinta. Miten tekisin tämän T-SQL:llä?
Jos kenttä on jo merkkijono, tämä toimii.
SELECT RIGHT('000'+ISNULL(field,''),3)
Jos haluat, että nollat näkyvät muodossa '000'
Se voi olla kokonaisluku - silloin haluat, että
SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)
Kuten kysymyksessä edellytetään, tämä vastaus toimii vain, jos pituus <= 3, jos haluat jotain suurempaa, sinun on muutettava merkkijonovakio ja kaksi kokonaislukuvakiota tarvittavaan leveyteen. esim.
'0000' ja VARCHAR(4))),4
.
Kokonaisluvuille voit käyttää implisiittistä muunnosta int:stä varchariksi:
SELECT RIGHT(1000 + field, 3)