Pregunta

Todos sabemos que T-SQL de manipulación de cadenas de capacidades a veces deja mucho que desear...

Tengo un campo numérico que debe ser la salida en T-SQL como un texto alineado a la derecha de la columna.Ejemplo:

Value
----------
   143.55
  3532.13
     1.75

¿Cómo usted va sobre eso?Una buena solución debe ser clara y concisa, pero recuerda que no hay tal cosa como "demasiado inteligente".

Estoy de acuerdo en que este es el lugar equivocado para hacer esto, pero a veces estamos atrapados por fuerzas fuera de nuestro control.

Gracias.

¿Fue útil?

Solución

El Función STR tiene una longitud opcional argumento, así como un número de decimales uno.

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)

Otros consejos

La forma más fácil es la almohadilla de la izquierda:

CREATE FUNCTION PadLeft(@PadString nvarchar(100), @PadLength int)
RETURNS nvarchar(200)
AS
begin
return  replicate(' ',@padlength-len(@PadString)) + @PadString
end
go
print dbo.PadLeft('123.456', 20)
print dbo.PadLeft('1.23', 20)

Si usted DEBE hacer esto en SQL se puede utilizar los siguientes código (Este código asume que no tiene números que son mayores de 40 caracteres):

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top