I have the following SELECT
statement to calculate RADIANS
and COS
.
SELECT COS(RADIANS(latitude)) as Lat
FROM tbl_geomet
You can use:
SELECT CASE
WHEN PATINDEX('%[^0-9]%', latitude) > 0 THEN 0
ELSE Cos(Radians(convert(float,latitude)))
end as latitude
FROM tbl_geometry
You can use the THEN
to fill the attribute with null
or other values if non-convertable values are encountered. Or you can use the PATINDEX
in the WHERE
if you want to skip those rows all together. (You may have to play around with the patindex
, I don't usually use floats
, so I'm not sure what is and isn't allowed. You may want to include decimal points, for example.)
Use try_convert()
to find the invalid data:
select latitude
from tbl_geometry
where try_convert(float, latitude) is null;
try_convert()
is available in SQL Server 2012+.