SQLServerで取得した値を3ケタのカンマ区切りで表示する

記事内に広告が含まれています。

SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更する方法です。

3ケタずつのカンマ区切りの表示にする

SQLServerではカンマ区切りにする専用の関数はありませんが、Convert関数を利用することで可能になります。

ただし、この処理を行うには取得した値はMoney型である必要があります。

Money型でないものは一旦Money型に変換してからConvert関数に渡します。

またMoney型を文字列にすると「.00」が付くのでそれを最後にReplace関数で消し去ります。

以下が実際のSQLです。

CREATE TABLE #test_tbl
(
     num           INT
    ,price         MONEY
)
INSERT INTO #test_tbl VALUES (1000000,20000000),(5000,-20000)

SELECT
     REPLACE(CONVERT(VARCHAR,CONVERT(MONEY,num ),1),'.00' , '')    AS INT型のカンマ付き
     ,REPLACE(CONVERT(VARCHAR,price ,1),'.00' , '')                 AS MONEY型のカンマ付き
FROM
    #test_tbl

DROP TABLE #test_tbl

結果

上記のSQLの実行結果です。

INT型のカンマ付き MONEY型のカンマ付き
1,000,000 20,000,000
5,000 -20,000
タイトルとURLをコピーしました