justificar derecha alinear ala sql-server tsql

sql-server - alinear - justificar a la derecha en sql server



Derecho de alinear texto en SQL Server (3)

La función STR tiene un argumento de longitud opcional, así como un número de decimales.

SELECT STR(123.45, 6, 1) ------ 123.5 (1 row(s) affected)

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

Tengo un campo numérico que debe mostrarse en T-SQL como una columna de texto alineada a la derecha. Ejemplo:

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

¿Cómo harías para eso? Una buena solución debe ser clara y compacta, pero recuerde que existe algo así 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.


La forma más fácil es pasar a 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 DEBE hacer esto en SQL puede usar el siguiente código (Este código asume que no tiene valores numéricos mayores a 40 caracteres):

SELECT REPLICATE('' '', 40 - LEN(CAST(numColumn as varchar(40)))) + CAST(numColumn AS varchar(40)) FROM YourTable