Por que SELECT 1/2 retorna 0?

19

Como o título diz. Eu até tentei SELECT CONVERT(NUMERIC, 1/2)que também retornou 0.

Estou usando o SQL Server 2008.

Maximus anônimo
fonte

Respostas:

29

Eles são inteiros.

Experimentar:

select 1.0/2.0;

Ou:

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

Primeiro, você está executando os números como números inteiros, mas segundo, também não definiu a precisão e a escala do tipo de dados numérico .

Tente o seguinte:

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

ou mesmo

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