mssql convertir varchar en float

J'ai une longueur de produit de valeur de champ de 0.123. Ceci provient d'une vue et a un type de données de varchar.

J'ai besoin de le convertir en float ou en valeur numérique afin d'effectuer des comparaisons mathématiques.

convert (float, productlength) et cast (longueur du produit comme float) ne fonctionnent pas.

error varchar cant be converted to float ou quelque chose liek.

De ce que j'ai lu varchar ne peut tout simplement pas être converti en une string numérique?

Des moyens astucieux autour de cela?

    Vous pouvez convertir des varchar en floats, et vous pouvez le faire de la manière que vous avez exprimée. Votre varchar ne doit pas être une valeur numérique. Il doit y avoir autre chose dedans. Vous pouvez utiliser IsNumeric pour le tester. Regarde ça:

     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) 
     DECLARE @INPUT VARCHAR(5) = '0.12',@INPUT_1 VARCHAR(5)='0.12x'; select CONVERT(float, @INPUT) YOUR_QUERY , case when isnumeric(@INPUT_1)=1 THEN CONVERT(float, @INPUT_1) ELSE 0 END AS YOUR_QUERY_ANSWERED 

    ci-dessus returnnera des valeurs

    Cependant, la requête ci-dessous ne fonctionnera pas

     DECLARE @INPUT VARCHAR(5) = '0.12',@INPUT_1 VARCHAR(5)='0.12x'; select CONVERT(float, @INPUT) YOUR_QUERY , case when isnumeric(@INPUT_1)=1 THEN CONVERT(float, @INPUT_1) ELSE **@INPUT_1** END AS YOUR_QUERY_ANSWERED 

    comme @ INPUT_1 a effectivement varchar dedans.

    Donc, votre colonne de sortie doit avoir un varchar dedans.