Coloque uma string com zeros à esquerda para que ele's 3 caracteres de comprimento no SQL Server 2008

Eu tenho uma string que tem até 3 caracteres quando foi criada pela primeira vez no SQL Server 2008 R2.

Eu gostaria de almofadá-lo com zeros de chumbo, então se seu valor original fosse '1' então o novo valor seria '001'. Ou se o seu valor original fosse '23' o novo valor seria '023'. Ou se o seu valor original fosse '124' então o novo valor é o mesmo que o valor original.

Estou a usar o SQL Server 2008 R2. Como eu faria isso usando o T-SQL?

Solução

Se o campo já é uma corda, isto funcionará

 SELECT RIGHT('000'+ISNULL(field,''),3)

Se você quer que os nulos apareçam como '000'

Pode ser um número inteiro... então você iria querer

 SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)

Como requerido pela pergunta esta resposta só funciona se o comprimento

Comentários (14)

Para aqueles que querem atualizar seus dados existentes aqui é a consulta:

update SomeEventTable set eventTime=RIGHT('00000'+ISNULL(eventTime, ''),5)
Comentários (0)

Para números inteiros você pode usar a conversão implícita de int para varchar:

SELECT RIGHT(1000 + field, 3)
Comentários (1)