Comment convertir une string en integer dans SQL Server 2008?

Je suis mis au défi par SQL Server. J'ai cette requête simple

SELET * FROM mytable WHERE ISNUMERIC(propertyvalue) = 1 AND CONVERT(int, CONVERT(decimal(9, 0), ISNULL(propertyvalue, 0 ))) > 0 

J'ai essayé de changer la ligne de conversion de

 CONVERT(decimal(9, 0), ISNULL(propertyvalue, 0)) 

à

 CONVERT(decimal(9, 2), ISNULL(propertyvalue, 0)) 

ou

 CAST(ISNULL(propertyvalue, 0) AS numeric) 

aucun de ce que j'essaye ne travaille quoi que ce soit. Je continue à recevoir cette erreur

Msg 8114, niveau 16, état 5, ligne 1
Erreur lors de la conversion du type de données varchar en numérique.

Des idées sur la façon de résoudre ce problème?

ÉDITÉ

La propriétévalue a le type de varchar(255) et il a des données comme

 2 1.5 2.1 Ssortingng 1Ssortingng 456 

Je crois que vous devez filterr datatables de la string avant d'essayer la conversion:

  SELECT * INTO #temp FROM mytable WHERE propertyvalue NOT LIKE '%[^0-9]%' SELECT * FROM #temp WHERE CONVERT(INT, CONVERT(DECIMAL(9, 0), ISNULL(propertyvalue, 0))) > 0 DROP TABLE #temp 

Je pense que c'était à faire avec la période, il ne sait pas comment le convertir.

avez-vous essayé le flotteur?

 CONVERT(float, ISNULL(propertyvalue, 0 ))