2009-08-25 7 views
0

Ich habe eine gespeicherte Prozedur, die einige Daten und E-Mails abfragt, möchte ich die Prozedur ändern, so dass alle Zahlen in den Tausenden mit Kommata wie 1.000 angezeigt werden. Ich denke, der beste Weg, dies in SQL zu tun, ist, es in eine Zeichenfolge zu konvertieren und das Komma hinzuzufügen?SQL Server Integer Formatierung

Danke

Antwort

2

Hier ist eine relativ saubere Antwort. In Geld umwandeln (kein Datentypverlust). Konvertiere dann mit Stil 1 in varchar (es macht die Kommas für dich) und entferne dann die .00 vom Ende, da es mit dem Geld-Datentyp kommt.

select REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, 1234), 1), '.00', '') 

Es ist eine feine Linie, wie viele String-Manipulationen, um herauszufinden, bevor Sie eine Inline-Funktion zu tun, aber das sollte eine ziemlich schnelle Umwandlung sein.

Danke, Eric

1

Korrekt. Eine Ganzzahl hat keine Definition des Datentyps per Definition.

Also müssen Sie entweder den Wert in eine Zeichenfolge (VARCHAR zum Beispiel) konvertieren oder wie es die gängige Praxis ist, die Präsentationsebene behandeln die Formatierung des Werts.

+0

In diesem Fall gibt es keine Vorstellung wie die gespeicherte Prozedur gebunden, wenn eine E-Mail mit den Daten zu feuern. – Gavin

0

Wenn Sie SQL Server als die Darstellung der E-Mail stecken verwenden (keine andere Bericht Anwendung),

SELECT CONVERT(varchar(24),CONVERT(money,CAST(12345678 AS VarChar(24))),1)

+0

Gibt es eine Möglichkeit, dies ohne die Nachkommastellen zu tun? – Gavin

+0

Siehe @Strommy Antwort. – JeffO