2012-12-13 7 views
14

Ich habe eine Spalte namens TotalArea und sein Format ist numeric (12,2).SQL Server 2008 Tausende Trennzeichen für eine Spalte

Ich will es die Zahlen mit Tausendertrennzeichen angezeigt werden, so, wenn ich

select TotalArea from table 

mir wie 1,234.00 ein Format zeigen.

Wie könnte ich das tun? Vielen Dank!

+0

Mögliche Duplikate von [Wie formatiere ich eine Zahl mit Kommata in T-SQL?] (Https://stackoverflow.com/questions/4377352/how-do-i- format-a-number-mit-kommas-in-t-sql) –

Antwort

26

Versuchen Sie, diese Art und Weise:

select replace(convert(varchar,convert(Money, TotalArea),1),'.00','') 
from table 

oder

SELECT CAST(CONVERT(varchar, CAST(123456 AS Money), 1) AS varchar) 
from table 
+1

+1 beca benutze es korrekt, aber tu das bitte nicht. @MattWhitfield hat es absolut genagelt. – tomfanning

+1

Tun Sie dies nur, wenn Ihre Nummer in eine Geldart umgewandelt wird. @dasiimwe hat die bessere Antwort. Float-Werte werden Fehler – Dave

+0

Float-Werte werden in Ordnung, und wenn Sie mit SQL Server 2008 stecken bleiben, dann ist dies wahrscheinlich die beste Wahl. 'declare @f float = 12345.67890; SELECT CONVERT (varchar, CAST (@fAS Money), 1) ' – Rob

18

Formatieren von Zahlen für die Anzeige ist etwas, das in der Anzeigeschicht, und nicht in der Datenbank durchgeführt werden sollte. Also, in welcher Anwendung diese Daten auch immer verwendet werden, sollten Sie sie dort formatieren. Management Studio bietet leider nicht viel Kontrolle in dieser Hinsicht.

+0

Was ist, wenn Sie standardisierte XML-Datenformatierung wollen? Ich verwalte Formatierungsstandards in der Datenbank, und dies verbreitet sich auf alle Clients, sei es Web, Mobile, etc. Und BTW, FORMAT (Nummer, '#, 0') gibt Ihnen Separatoren, nicht sicher, warum jemand ersetzen (konvertieren (konvertieren Konvertieren()))???? Nicht effizient in meiner Sicht, wenn 1M + Aufzeichnungen ... –

+0

@ArvinAmir - Ich würde behaupten, dass die Formatierung von XML nur für Menschen notwendig ist - Computer verbrauchen es die gleiche, ob es eine Reihe von Leerzeichen darin hat oder nicht. Ich würde also sagen, dass diese Art von Formatierung immer noch zum Zeitpunkt der Anzeige erfolgen sollte. –

-1

Probieren Sie dieses Beispiel aus.

SELECT CAST (CONVERT (varchar, CAST (123456 AS Geld), 1) AS varchar)

+1

Fast identisch mit Parados Antwort und fast ein Jahr später - *** doppelte Antwort *** – Kiquenet

14
SELECT FORMAT(12345,'#,0.00'); 

SELECT FORMAT(TotalArea,'#,0.00') from table; 

Referenz: https://msdn.microsoft.com/en-us/library/ee634206(v=sql.105).aspx

+0

Dies ist die beste Antwort, da dies funktioniert - SELECT FORMAT (2222222222222222222222222, '#, 0.00') – Dave

+0

Unterstützt nur von SQL Server 2012 ab . https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b4090663-6805-46f5-b84f-81e5eb90da30/format-works-in-2012-but-not-in-2008-what-am-- Ich vermisse? Forum = transactsql –

+0

Danke, sehr hilfreich –

0

Verwendung dieses einfache .... Format (CHART_OF_ITEM. UNIT_PRIC_W_TAX, '#, 0.00') AS UNIT_PRICE_W_TAX