SQL ServerでT-SQLを使用する場合、目的の形式に応じて、さまざまな方法を使用して数値を形式化できます。
以下は、SQLServerで数値を小数点以下2桁にフォーマットするために使用できる4つの関数です。
CAST()
機能
これを行う最も明白な方法は、数値を10進型に変換することです。これを実行できる2つの関数は、 CAST()
です。 およびCONVERT()
。
CAST()
の使用例を次に示します。 :
SELECT CAST(275 AS DECIMAL(5, 2));
結果:
275.00
数値がすでに小数点以下の値であるが小数点以下の桁数が多い場合でも、この方法を使用できます。
ただし、小数点以下2桁を超える数値から小数点以下の桁数を減らすと、小数点以下2桁が切り上げられる可能性があることに注意してください。
SELECT CAST(275.4567 AS DECIMAL(5, 2));
結果:
275.46
CONVERT()
機能
ここでは、 CONVERT()
を使用します 同じことを行うには–数値を10進数に変換します:
SELECT CONVERT(DECIMAL(5, 2), 275);
結果:
275.00
FORMAT()
機能
小数点以下2桁の数値をフォーマットする別の方法は、 FORMAT()
を使用することです。 機能:
SELECT FORMAT(275, 'N2');
結果:
275.00
この関数は実際には数値を文字列に変換するため、技術的には結果は数値型ではありません。
N2
一部はフォーマット文字列と呼ばれます。この場合、 N
番号と2
用です 小数点以下の桁数です(必要に応じて増減できます)。
同じ手法を使用して、小数点以下の桁数が多い数値から小数点以下2桁まで減らすことができます。
SELECT FORMAT(275.4567, 'N2');
結果:
275.46
他の例で数値を変換したときと同じように、切り上げられています。
これを行う別の方法は、カスタム形式の文字列を使用することです。カスタムフォーマット文字列を使用すると、標準フォーマット文字列でサポートされていない可能性のあるフォーマットを指定できます。
カスタム形式の文字列を使用する例を次に示します。
SELECT
FORMAT(275, '###.##') AS "###.##",
FORMAT(275, '000.00') AS "000.00",
FORMAT(275.4567, '###.##') AS "###.##",
FORMAT(275.4567, '000.00') AS "000.00";
結果:
+----------+----------+----------+----------+ | ###.## | 000.00 | ###.## | 000.00 | |----------+----------+----------+----------| | 275 | 275.00 | 275.46 | 275.46 | +----------+----------+----------+----------+>
#
の使用には違いがあることがわかります および0
フォーマット文字列で。 #コード> フォーマット指定子は、
0
の間、重要でないゼロを抑制します。 フォーマット指定子はそうではありません。
しかし、おそらくもっと重要なのは(この記事の目的のために)、 0
フォーマット指定子を使用すると、元の数値に存在しない場合に重要でないゼロを追加できます。したがって、整数に小数点以下2桁を追加するために使用できます(上記の例を参照)。
STR()
機能
数値を小数点以下2桁にフォーマットする別の方法は、 STR()
を使用することです。 機能:
SELECT STR(275, 6, 2);
結果:
275.00
この関数は、数値データから変換された文字データを返します。文字データは右寄せされ、指定された長さと小数点以下の精度があります。
最初の引数は、小数点付きのfloatデータ型の式です。
2番目の引数は全長です。これには、小数点、符号、数字、およびスペースが含まれます。デフォルトは10です。
3番目の引数は、小数点の右側の桁数です。これは16以下である必要があります。