¿Por qué SELECT 1/2 devuelve 0?

19

Como dice el título. Incluso intenté SELECT CONVERT(NUMERIC, 1/2)que también devolvió 0.

Estoy usando SQL Server 2008.

Anónimo Máximo
fuente

Respuestas:

29

Son enteros.

Tratar:

select 1.0/2.0;

O:

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

Primero, está ejecutando los números como enteros, pero segundo, tampoco ha definido la precisión y la escala del tipo de datos numérico .

Prueba esto:

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

o incluso

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