¿Cuál es el rango de valores? ¿Es de 0 a 10? Si es así, entonces prueba:
SELECT REPLICATE('0',2-LEN(@t)) + CAST(@t AS VARCHAR)
que se encarga del 0 al 9, así como 10 a 99.
Ahora, tinyint puede ir hasta el valor de 255. Si desea controlar> 99 a 255 , a continuación, intente esta solución:
declare @t TINYINT
set @t =233
SELECT ISNULL(REPLICATE('0',2-LEN(@t)),'') + CAST(@t AS VARCHAR)
para comprender la solución, la expresión a la izquierda del + calcula el número de ceros como prefijo a la cadena.
En el caso del valor 3, la longitud es 1. 2 - 1 es 1. REPLICAR Agrega un cero. En el caso del valor 10, la longitud es 2. 2 - 2 es 0. REPLICAR No agrega nada. En el caso del valor 100, la longitud es -1 que produce un NULL. Sin embargo, el valor nulo se maneja y se establece en una cadena vacía.
Ahora bien, si decide que debido a que tinyint puede contener hasta 255 y desea que su formateo sea de tres caracteres, simplemente cambie el valor de 2 LEN a 3 LEN en la expresión izquierda y listo.
Bienvenido a Stack Overflow. Esta pregunta fue respondida originalmente hace casi 3 años. Cuando agrega una nueva respuesta a una pregunta tan antigua, es una buena idea explicar en detalle qué es novedoso acerca de su respuesta o por qué las respuestas originales no son precisas (o, quizás más probable, ya no son precisas). porque el producto ha cambiado). Además, no me queda claro qué está corrigiendo la 'Corrección'; deberías dejar eso en claro, también. –