Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Arithmetischer Überlauffehler beim Konvertieren von varchar in den Datentyp numerisch. '10' <=9.00

Dies erzeugt einen arithmetischen Überlauf, da versucht wird, Val implizit umzuwandeln Spalte zu einem NUMERIC(3,2), was natürlich bei einem 2-stelligen Wert wie 10 überläuft.

Es verwendet NUMERIC(3,2) als Zieltyp und -größe, da dies die kleinste Zahl ist, die 9.00 ist scheint in.

zu passen

Die Lösung besteht natürlich darin, explizites CASTing zu verwenden, anstatt es implizit zu tun