2015-12-10 1 views
0

J'ai eu une question rapide liée à la division d'un entier par un autre entier.SQL cast une valeur Int ou multiplier par 1,0, meilleure option

Je voudrais connaître les pensées des gens sur soit la conversion d'une des valeurs Integer en Float, ou la multiplication par 1.0, ce qui semble avoir le même effet.

cast(sum(case when [Column1] = 'Value' then 1 else 0 end) As Float)/[Column2] 

OU

1.0 * sum(case when [Column1] = 'Value' then 1 else 0 end)/[Column2] 

plus d'être évidemment en mesure de choisir votre type de données lors de la coulée, dans le calcul, si elles doivent toujours le même résultat?

Répondre

1

Je dirais que la mise en constantes à virgule flottante est la meilleure approche:

sum(case when [Column1] = 'Value' then 1.0 else 0 end)/[Column2] 

Si vous allez faire une conversion, faites après la division, de sorte que vous contrôlez le type du résultat.