SQLServerで数値をパーセンテージ値に変換する4つの方法を次に示します。
厳密に言えば、実際にはパーセンテージに「変換」しているわけではありません。数値をパーセンテージでフォーマットしています。ただし、そのためには、数値を数値データ型から文字列に変換する必要があります。
これを行う4つの方法があります。
例1-FORMAT()関数
使用する最も明白な選択は、FORMAT()
です。 働き。これにより、数値と日付を特定の形式で表示できます。
この関数を使用して数値をパーセンテージで表示する例を次に示します。
SELECT FORMAT(55, 'P') Result;
結果:
+------------+ | Result | |------------| | 5,500.00 % | +------------+
4つのゼロが値に追加されていることに注意してください(小数点の前に2つ、小数点の後に2つ)。
これを55%にするには、次のものが必要になります。
SELECT FORMAT(.55, 'P') Result;
結果:
+----------+ | Result | |----------| | 55.00 % | +----------+
数値が実際のパーセンテージ値である場合は、次のように実行できます。
SELECT FORMAT(55 * .01, 'P') Result;
結果:
+----------+ | Result | |----------| | 55.00 % | +----------+
フォーマット指定子にゼロを追加して、小数部分を削除することもできます。
SELECT FORMAT(.55, 'P0') Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
必要に応じて、小数点以下の桁数を追加することもできます:
SELECT FORMAT(.55123456, 'P7') Result;
結果:
+--------------+ | Result | |--------------| | 55.1234560 % | +--------------+
例2– CONVERT()関数
または、CONVERT()
を使用することもできます 数値を文字列に変換し、最後にパーセント記号を追加する関数。
前の例で簡単にできたことを考えると、これは少し不必要に思えるかもしれませんが、FORMAT()
この関数はSQLServer2012でのみ導入されました。したがって、以前のバージョンのSQL Serverを使用する場合は、このようにする必要があります。
SELECT CONVERT(VARCHAR(4), 55) + ' %' Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
もちろん、あなたの番号が.55
のようなものであれば 55.00%として表示するには、それが必要です。その後、いつでも100を掛けることができます:
SELECT CONVERT(VARCHAR(6), 0.55 * 100) + ' %' Result;
結果:
+----------+ | Result | |----------| | 55.00 % | +----------+
この場合、 varcharのサイズも大きくしました 余分な文字に対応するためのデータ型。
また、LEFT()
を使用して、小数部分を削除できます。 機能:
SELECT CONVERT(VARCHAR(6), LEFT(0.55 * 100, 2)) + ' %' Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
これを行うときは注意が必要ですが、実際の値は2より大きくても小さくても変動する可能性があるため、この場合はTRIM()
を使用できます。 先行ゼロや末尾のドットをトリミングする機能:
SELECT CONVERT(VARCHAR(6), TRIM('0,.' FROM LEFT(0.55 * 100, 3))) + ' %' Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
ただし、これは完全ではなく、FORMAT()
関数は明らかに、最小限のコードではるかに多くの柔軟性を提供します。
例3– CAST()関数
または、CAST()
を使用することもできます 前の例と同じことを行う関数:
SELECT CAST(55 AS VARCHAR(4)) + ' %' Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
CAST()
に注意してください およびCONVERT()
わずかに異なる構文を使用します。 CAST()
の場合 キャストされる値が最初に来ますが、CONVERT()
ではその逆です。 。
例4– CONCAT()
機能
CONCAT()
を使用することもできます 数値をパーセント記号で連結する関数:
SELECT CONCAT(55, ' %') Result;
結果:
+----------+ | Result | |----------| | 55 % | +----------+
この関数は、連結の前にすべての引数を文字列型に暗黙的に変換します。