Frage

Wir alle wissen, dass T-SQL string-manipulation Funktionen manchmal viel zu wünschen übrig lässt...

Ich habe ein numerisches Feld, dass Bedürfnisse ausgegeben werden, die in T-SQL, wie ein rechts ausgerichteter text-Spalte.Beispiel:

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

Wie würden Sie gehen?Eine gute Lösung sollte klar sein und kompakt, aber denk daran, es gibt so etwas wie "zu clever".

Ich Stimme zu das ist der falsche Ort, um dies zu tun, aber manchmal sind wir festgefahren durch Kräfte außerhalb unserer Kontrolle.

Danke.

War es hilfreich?

Lösung

Die STR-Funktion sowie eine optionale Länge Argument als Ausgangs Nummer-of-Dezimalstellen ein.

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)

Andere Tipps

Der einfachste Weg ist, um Pad links:

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)

Wenn Sie dies in SQL tun müssen Sie den folgenden Code verwenden können (Dieser Code geht davon aus, dass Sie keine Numerik haben, die größer als 40 Zeichen):

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top