フィールド値productlengthは0.123です。これはビューからのものであり、varcharのデータ型を持っています。
O数学の比較を実行するために、浮動小数点数または数値に変換する必要があります。
convert(float、productlength)とcast(float as productlength)は両方とも機能しません。
error varchar cant be converted to float
または何らかの理由でそうです。
私が読んだvarcharから、単に数値文字列に変換することはできませんか?
これを回避する賢い方法はありますか?
Varcharをfloatに変換し、表現した方法で変換できます。 varcharは数値であってはなりません。その中に何か他のものがなければなりません。 IsNumericを使用してテストできます。こちらをご覧ください:
declare @thing varchar(100)
select @thing = '122.332'
--This returns 1 since it is numeric.
select isnumeric(@thing)
--This converts just fine.
select convert(float,@thing)
select @thing = '122.332.'
--This returns 0 since it is not numeric.
select isnumeric(@thing)
--This convert throws.
select convert(float,@thing)
使用する
Try_convert(float,[Value])
https://raresql.com/2013/04/26/sql-server-how-to-convert-varchar-to-float/ を参照してください