- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
create function is_numeric (
@a varchar(100)
) returns int as begin
declare @retval int
set @a = replace(@a, '0', '')
set @a = replace(@a, '1', '')
set @a = replace(@a, '2', '')
set @a = replace(@a, '3', '')
set @a = replace(@a, '4', '')
set @a = replace(@a, '5', '')
set @a = replace(@a, '6', '')
set @a = replace(@a, '7', '')
set @a = replace(@a, '8', '')
set @a = replace(@a, '9', '')
set @a = replace(@a, '.', '')
if len(rtrim(ltrim(@a))) > 0 set @retval = 0
else set @retval = 1
return @retval
end
Вот такая хитрая скалярная функция была найдена в недрах сопровождаемой системы. Согласно ей "...42...42..." -- это число, такие дела.
Но ведь вместо '.' может быть и ',' 🙂 при соотвествующей кодировке.