ありがたいことに(?)、 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
になるようにします。 。これは簡単に識別でき、シフト(*10000
)を組み合わせて小数点以下4桁に置き換えられます。 )およびCASTをINT(切り捨て)として使用して、数字を導出します。
[結果] :
| COLUMN_0 |
--------------
| 1,234.1235 |
ただし、SQL Server Management StudioまたはSQLCMDを使用してビジネスレポートを配信する必要がない限り、これは絶対にありません。 たとえそれができるとしても、正しい解決策。フロントエンドまたはレポート環境には、表示フォーマットを処理するための適切な機能があります。