вообще есть функции: проверки ISNUMERIC() и округления CEILING(),
тогда будет что-нибудь вида
declare @f nvarchar)100:
set @f = '1E+1'
select
case isnumeric)@f:
when 1
then
case convert)float, @f:
when ceiling)convert)float, @f::
then convert)int, convert)float, @f::
else 0
end
else 0
end
где в качестве @f подставляй разные строки: в случае целых чисел запрос вернёт эти числа, иначе 0.
Но меня смущает самая задача: имхо, плохо определена структура данных. При нормальной организации базы данных таких задач быть не может. У меня похожая задача была не так давно, но исключительно из-за того, что данные брались из Excel, а у юзверей руки, как известно, кривые.