J'ai une colonne
StudentData ( varchar
)
Valeurs d'échantillon:
Not regular 90 15.2 55 4 0 >15 regular 35
J'ai une condition pour find tous les étudiants qui ont une valeur StudentData
supérieure à 10 ou qui ont une valeur NULL.
Lorsque j'essaie de le convertir échoue, la conversion échoue. Comment peut-on get ces valeurs? Je m'attends à un résultat quelque chose comme
studentdata 90 15.2 55 35
Veuillez nous conseiller
Je pense que vous cherchez ceci:
select * from t where studentdata is null or (isnumeric(studentdata) = 1 and CAST(studentdata AS float) > 10)
Quoi qu'il en soit, vous devriez envisager de stocker des informations appropriées dans cette colonne, au lieu d'un mélange de choses.
Faites-moi savoir si vous avez un problème avec cela.
Vous pouvez utiliser isnumeric () mais il a quelques problèmes. IsNumeric () Broken? Seulement jusqu'à un point.
Quelque chose comme devrait fonctionner pour vous.
select * from YourTable where case when isnumeric(studentdata+'E0') = 1 then cast(studentdata as float) else 0 end > 10