Erreur lors de la conversion du type de données varchar flotter
Cherché sur DONC et ne peut pas comprendre
Essayé d'INCANTATION chaque champ comme le FLOTTEUR en vain, de convertir n'ai pas à me toute
Comment puis-je obtenir le dessous de cas de clause de retour la valeur indiquée dans la section ALORS?
D'erreur:
Msg 8114, Niveau 16, État 5, Ligne 1
Erreur lors de la conversion du type de données varchar flotter.
section de ma requête SQL qui le rend d'erreur:
When cust_trendd_w_costsv.terms_code like '%[%]%' and (prod.dbo.BTYS2012.average_days_pay) - (substring(cust_trendd_w_costsv.terms_code,3,2)) <= 5 THEN prod.dbo.cust_trendd_w_costsv.terms_code
average_days_pay = float
terms_code = char
Cheers!
S'il vous plaît poster un échantillon de données pour les deux champs utilisés dans votre requête.
Le truc, c'est dans la sous-chaîne(cust_trendd_w_costsv.terms_code,3,2) l'expression contient une mauvaise valeur pour convertir
Le truc, c'est dans la sous-chaîne(cust_trendd_w_costsv.terms_code,3,2) l'expression contient une mauvaise valeur pour convertir
OriginalL'auteur user2086052 | 2013-02-19
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser ISNUMERIC afin de gérer les chaînes qui ne peuvent pas être convertis:
OriginalL'auteur valex
Le problème que vous rencontrez, c'est que vous êtes précisément à la recherche pour les chaînes qui contiennent un
%
caractère, et puis de les convertir (implicitement ou explicitement) à flotter.Mais les chaînes contenant
%
signes ne peut pas être convertie en float, alors qu'ils ont encore un%
. Cela génère également une erreur:Si vous êtes désireux de se convertir à flotteur, vous aurez besoin de retirer le
%
signe tout d'abord, quelque chose comme:sera simplement l'éliminer. Je ne sais pas si il y a d'autres personnages de votre
terms_code
colonne qui peut également voyage.Vous devez également être conscient que SQL Server peut de manière assez agressive de revoir l'ordre des opérations et donc peut tenter un au-dessus de la conversion sur d'autres chaînes dans
terms_code
, même ceux ne contenant pas de%
. Si c'est la source de votre erreur, alors vous avez besoin pour éviter ce agressifs re-commande. Il n'existe pas de agrégats de jeu, unCASE
expression peut généralement éviter le pire, les questions, assurez-vous que toutes les chaînes que vous ne voulez pas avoir affaire avec sont éliminés par les premiersWHEN
clauses avant de tenter votre conversionjuste pour référence future, ne postez pas des données de l'échantillon dans les commentaires - modifier votre question. Vous pouvez alors utiliser les outils de là à format les données de sorte que l'on peut lire comme un tableau.
OriginalL'auteur Damien_The_Unbeliever
Si vous êtes sûr que Substring Partie renvoie une valeur numérique, Vous pouvez lancer La sous-chaîne(....) pour Float :
OriginalL'auteur Maryam Arshi