CREATE FUNCTION dbo.f_bin_dec(@s varchar(64))
RETURNS bigint
AS
BEGIN
--作者:pbsql
--参数不得含'0'、'1'之外的任意字符(首尾空格除外),否则返回0
DECLARE @i int,@result bigint
SELECT @i=0,@result=0,@s=RTRIM(LTRIM(REVERSE(@s)))
WHILE @i<LEN(@s)
BEGIN
IF SUBSTRING(@s,@i+1,1) not in('0','1')
BEGIN
SELECT @result=0
break
END
SELECT @result=@result+CAST(SUBSTRING(@s,@i+1,1) AS int)*POWER(2,@i),@i=@i+1
END
RETURN @result
END
GO
RETURNS bigint
AS
BEGIN
--作者:pbsql
--参数不得含'0'、'1'之外的任意字符(首尾空格除外),否则返回0
DECLARE @i int,@result bigint
SELECT @i=0,@result=0,@s=RTRIM(LTRIM(REVERSE(@s)))
WHILE @i<LEN(@s)
BEGIN
IF SUBSTRING(@s,@i+1,1) not in('0','1')
BEGIN
SELECT @result=0
break
END
SELECT @result=@result+CAST(SUBSTRING(@s,@i+1,1) AS int)*POWER(2,@i),@i=@i+1
END
RETURN @result
END
GO