22,207
社区成员
发帖
与我相关
我的任务
分享
CREATE FUNCTION [dbo].[isFloat](@value VARCHAR(1024))
RETURNS BIT
AS BEGIN
DECLARE @temp FLOAT
DECLARE @err INT
SET @temp=convert(FLOAT, @value)
SELECT @err=@@error
IF @err<>0
BEGIN
RETURN 0
END
RETURN 1
END
select a,b into # from t1 where isnumeric(a)=1;
select cast(a as float)as AnswerText,sum(b)as AnswerCount from # group by a
select ISNUMERIC('1E+100')
/*
1
*/
select ISNUMERIC('1'+replicate('0',999))
/*
0
*/
--和楼主说的结果相反
set @value = '1E+10'
select isnumeric(@value)
select convert(FLOAT, @value)
-结果
1
1E100