sql >> データベース >  >> RDS >> Sqlserver

SQLServerは小数点以下の桁数をコンマでフォーマットします

    ありがたいことに(?)、 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を使用してビジネスレポートを配信する必要がない限り、これは絶対にありません。 たとえそれができるとしても、正しい解決策。フロントエンドまたはレポート環境には、表示フォーマットを処理するための適切な機能があります。



    1. 再帰関数をビューに変換する

    2. スポットライトクラウドアラームの収集時間

    3. SQL-与えられた引数に最も近い価格を見つける

    4. 日付範囲でグループ化するMySQLクエリ?