Просто хочу отметить, что IsNumeric() имеет некоторые ограничения. Например, все нижеперечисленное вернет 1.
SELECT ISNUMERIC(' - ')
SELECT ISNUMERIC(' , ')
SELECT ISNUMERIC('$')
SELECT ISNUMERIC('10.5e-1')
SELECT ISNUMERIC('$12.09')
Итак, если вы хотите выбрать ТОЛЬКО числа, то может работать что-то вроде этого:
create function [dbo].[IsNumbersOnly](@strSrc as varchar(255))
returns tinyint
as
begin
return isnumeric(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
@strSrc, '\', 'x'), '-', 'x'), ',', 'x'), '+', 'x'), '$', 'x'), '.', 'x'), 'e', 'x'), 'E', 'x'),
char(9), 'x'), char(0), 'x'))
end
person
Void Ray
schedule
30.09.2012