Pourquoi SELECT 1/2 renvoie 0?

19

Comme le dit le titre. J'ai même essayé SELECT CONVERT(NUMERIC, 1/2)qui a également renvoyé 0.

J'utilise SQL Server 2008.

Maximus anonyme
la source

Réponses:

29

Ce sont des entiers.

Essayer:

select 1.0/2.0;

Ou:

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

Premièrement, vous exécutez les nombres sous forme d'entiers, mais deuxièmement, vous n'avez pas non plus défini la précision et l'échelle du type de données numérique .

Essaye ça:

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

ou même

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