Best practice für rechts-rechtfertigen würden, von einer Numerischen in TSQL

Was ist die beste Praxis-für rechts-für die Rechtfertigung der numerischen in TSQL?

Muss ich format fester Länge extrahieren der Datei und müssen den Numerischen Feldern Rechtsbündig ausgerichtet werden soll. (Ich bin mit SQL-Server 2005)

Fand ich diese, das scheint ziemlich geradlinig.

right('            '+convert(varchar(20),a.num),12)

Hier ist die vollständige Select-Anweisung

select
    a.num,
    fixed_number =
        right('            '+convert(varchar(20),a.num),12)
from
    (
    --Test Data
    select num = 2400.00    union all
    select num = 385.00 union all
    select num = 123454.34
    ) a

Results:

num        fixed_number 
---------- ------------ 
2400.00         2400.00
385.00           385.00
123454.34     123454.34

(3 row(s) affected)

Ich Stelle diese Frage, da ich dieses code-Zeile bei der Arbeit, das scheint WAHNSINNIG Komplex (Es ist auch das entfernen der dezimal-und null-Füllung)

CAST(REPLACE(REPLICATE('0', 12 - LEN(REPLACE(CAST(CONVERT(DECIMAL(10,2),@DD8DBAMT) AS VARCHAR),'.',''))) 
+ CAST(CONVERT(DECIMAL(10,2),@DD8DBAMT) AS VARCHAR),'.','') AS VARCHAR(12))

Aktualisiert:

Daniel Pratt die Idee, eine Funktion bekam, mich an Sie SQL# (dem wir). Es hat eine Funktion namens PadLeft, was überraschenderweise hatten die gleichen Parameter und Funktionen wie Daniel Pratt ' s fn_PadRight Funktion definiert in seiner Antwort unten.

Hier ist, wie SQL# Funktion:

DECLARE @F6D2 AS DECIMAL(8,2)
SET @F6D2 = 0
SQL#.String_PadLeft(@F6D2,9,' ')
SQL#.String_PadLeft(123.400,9,' ')
SQL#.String_PadLeft('abc',9,' ')

Es kann sowohl zahlen und Zeichenketten.

Gibt es einen Grund, Sie wollen zu tun das richtige Begründung in Ihrem tsql-code und nicht in den Bereich der Ausgabe (D. H. eine website, reporting services, etc.?) Versuchen, den hammer layout in tsql-code selbst ist ein großer WTF warten, um zu geschehen, IMHO.
Lesen Sie mehr sorgfältig. Es gibt keinen "Ausgang" außer ein Extrakt Datei. Wie funktioniert ein Datei extrahieren führen Sie die Formatierung der Daten?
Die ursprüngliche Frage haben Sie gesagt, das war für eine "extrahieren" - Datei. Als solche, es klingt nicht, als er die Vermischung von Daten und Präsentation.
Ich würde empfehlen ein normales select-Anweisung und dann die Erzeugung der Datei extrahieren mit einer sprintf-Anweisung für jede Zeile, oder etwas ähnliches. Es ist wirklich halten Sie gesund....
Ich Stimme Ihnen beiden zu, aber dies ist, wie andere Auszüge erstellt, wo in unserem Unternehmen. Ich bin neu zu erstellen Auszüge aus SQL Server, und ich verlasse mich auf das know-how des anderen .NET/SQL-Programmierer in der Firma. Ich weiß, über DTS/SSIS, aber Sie lief in Probleme mit Ihnen.

InformationsquelleAutor Gerhard Weiss | 2009-03-17

Schreibe einen Kommentar