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

SQL Server(T-SQL)で数値をパーセンテージに変換する4つの方法

    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 %     |
    +----------+
    

    この関数は、連結の前にすべての引数を文字列型に暗黙的に変換します。


    1. MySQL I/O使用率が高いかどうかを確認する方法

    2. PostgreSQLエラー:致命的:ロールのユーザー名が存在しません

    3. Oracleにタイムスタンプを挿入する方法は?

    4. Git分岐命名規則:ベストプラクティス