web-dev-qa-db-ja.com

SELECT 1/2が0を返すのはなぜですか?

タイトル通りです。私もSELECT CONVERT(NUMERIC, 1/2)を試しましたが、これも0を返しました。

SQL Server 2008を使用しています。

19

それらは整数です。

試してください:

select 1.0/2.0;

または:

select CONVERT(NUMERIC,1)/CONVERT(NUMERIC,2);
29
Philᵀᴹ

最初に、数値を整数として実行していますが、次に、 数値 データ型の精度と位取りを定義していません。

これを試して:

SELECT CONVERT(NUMERIC(5, 2), 1.0/2.0)

あるいは

SELECT CONVERT(NUMERIC(5, 2), 1/2.0)
14
Taryn