230 votes

Comment obtenir un résultat flottant en divisant deux valeurs entières en utilisant T-SQL ?

En utilisant T-SQL et Microsoft SQL Server, j'aimerais spécifier le nombre de chiffres décimaux lorsque je fais une division entre 2 nombres entiers, par exemple :

select 1/3

Cela renvoie actuellement 0 . Je voudrais qu'il revienne 0,33 .

Quelque chose comme :

select round(1/3, -2)

Mais ça ne marche pas. Comment puis-je obtenir le résultat souhaité ?

9voto

Troglo Points 198

Il semble que cette astuce fonctionne dans SQL Server et soit plus courte (d'après les réponses précédentes).

SELECT 1.0*MyInt1/MyInt2

Ou :

SELECT (1.0*MyInt1)/MyInt2

3voto

nazmul.3026 Points 407

Utilisez cette

select cast((1*1.00)/3 AS DECIMAL(16,2)) as Result

Ici, dans ce sql, il faut d'abord convertir en flottant ou multiplier par 1,00, ce qui donnera un nombre flottant. Ici, je considère 2 décimales. Vous pouvez choisir ce dont vous avez besoin.

2voto

trojan Points 122

Si vous êtes venu ici (tout comme moi) pour trouver la solution pour valeur entière voici la réponse :

CAST(9/2 AS UNSIGNED)

rendements 5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X