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

SQLServerで整数を10進数に変換する3つの方法

    T-SQLを使用してSQLServerで整数を10進値に変換するための3つのオプションを次に示します。

    CAST() 機能

    CAST() 関数は、あるデータ型の式を別のデータ型に変換します:

    SELECT CAST(275 AS DECIMAL(5, 2));

    結果:

    275.00

    この例では、整数(275)を変換しました )5の精度で10進値に変換します および2 小数位。

    10進数と数値は同義語であり、同じ意味で使用できます。したがって、同じ結果を達成するために、次のように例を調整できます。

    SELECT CAST(275 AS NUMERIC(5, 2));

    結果:

    275.00

    必要に応じて精度を調整することを忘れないでください:

    SELECT CAST(18301275 AS DECIMAL(10, 2));

    結果:

    18301275.00

    精度の引数が十分に大きくない場合、エラーが発生します:

    SELECT CAST(18301275 AS DECIMAL(9, 2));

    結果:

    Msg 8115, Level 16, State 8, Line 1
    Arithmetic overflow error converting int to data type numeric.

    CONVERT() 機能

    CONVERT() 関数はCAST()と同じことを行います 、わずかに異なる構文を除いて:

    SELECT CONVERT(DECIMAL(5, 2), 275);

    結果:

    275.00

    算術演算子を使用する

    もう1つのオプションは、乗算演算子などの算術演算子を使用することです。

    SELECT 275 * 1.00;

    結果:

    275.00

    この例では、整数に1.00を掛けます。 。

    SQL Serverでは、演算子が異なるデータ型の式を組み合わせる場合は常に、優先順位の低いデータ型が最初に優先順位の高いデータ型に変換されます。次に、この演算は、優先順位の高い引数のデータ型を返します。

    SQL Serverでは、10進数の方が整数よりも優先されます。

    1.00を掛けても、整数部分は変更されません。単純に小数に変換し、小数部分を追加しています。

    優先順位の高いデータ型のリストについては、SQLServerのデータ型の優先順位を参照してください。


    1. OracleからMySQLに移行する

    2. SQLiteとは何ですか?

    3. リモートMySQLデータベース接続のセットアップ

    4. mysqlの削除カスケードでどのように使用しますか?