Domanda

Sappiamo tutti T-SQL per la manipolazione di stringhe capacità a volte lascia molto a desiderare...

Ho un campo numerico che deve essere uscita in T-SQL come un testo allineato a destra della colonna.Esempio:

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

Cosa pensate di fare in proposito?Una buona soluzione dovrebbe essere chiara e compatta, ma ricordo che c'è una cosa come "troppo intelligente".

Sono d'accordo questo è il posto sbagliato per fare questo, ma a volte siamo bloccati da forze al di fuori del nostro controllo.

Grazie.

È stato utile?

Soluzione

Il Funzione STR ha una lunghezza opzionale, nonché un certo numero di decimali uno.

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)

Altri suggerimenti

Il modo più semplice è quello di pad a sinistra:

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)

Se è NECESSARIO farlo in SQL è possibile utilizzare il seguente codice (il codice si presuppone che non hanno valori numerici che sono più grandi di 40 caratteri):

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top