2017-10-13 3 views
1

Déplacement des données de flost vers décimal (5,2). La plus grande valeur que j'ai pu trouver dans les données existantes est 94.23 mais quand j'essaie de lancer en décimale, il y a une erreur.Obtention d'une erreur lors de la conversion en virgule flottante en décimal

Arithmetic overflow error converting float to data type numeric. 

J'ai essayé de copier directement sans coulée, j'ai eu cette erreur. Alors j'ai essayé de lancer le premier:

 CAST(Purity as decimal(5,2)) 

Même erreur.

j'ai remarqué il y a aussi NULLS là-bas donc j'ai essayé:

ISNULL(CAST(Purity as decimal(5,2)),0) 

même erreur.

Répondre

1

Avez-vous cherché la plus grande valeur dans la base de données?

select max(Purity) 
from t; 

Et, dans le cas où Purity est vraiment une chaîne, vous pourriez avoir d'autres choses qui se passent. Donc, vous pouvez essayer:

select max(convert(purity, 18, 6)) -- or something like this 
from t; 
+0

select max() a trouvé une valeur de 9845 (pas de décimale) donc il y a mon problème. Merci. – BattlFrog