ありがたいことに(?)、SQL Server 2012+では、FORMAT()を使用してこれを実現できるようになりました。
FORMAT(@s,'#,0.0000')
以前のバージョンでは、本当に醜いように見えるリスクがあります
[クエリ]:
declare @s decimal(18,10);
set @s = 1234.1234567;
select replace(convert(varchar,cast(floor(@s) as money),1),'.00',
'.'+right(cast(@s * 10000 +10000.5 as int),4))
最初の部分では、MONEY-> VARCHARを使用してコンマを生成しますが、FLOOR()を使用して小数が確実にに移動するようにし.00
ます。これは簡単に識別でき、シフト()とCASTをINT(切り捨て)として組み合わせ*10000
て桁を導出することにより、小数点以下4桁に置き換えられます。
【結果】:
| COLUMN_0 |
--------------
| 1,234.1235 |
ただし、SQL Server Management StudioまたはSQLCMDを使用してビジネスレポートを配信する必要がない限り、これは、実行できたとしても、決して正しいソリューションではありません。フロントエンドまたはレポート環境には、表示フォーマットを処理するための適切な機能があります。