--------字符串倒序
alter FUNCTION FN (@P VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @I int,@N int
SET @N=LEN(@P)
SET @I=LEN(@P)-1
WHILE @I>0
BEGIN
SET @P=@P+SUBSTRING(@P,@I,1)
SET @I=@I-1
END
SET @P=RIGHT(@P,@N)
RETURN @P
END
--字符串截取
ALTER function SPITSTR(@instr varchar(200),@index int )
returns varchar(200)
as
begin
declare @i int,@n int,@be int,@end int
declare @restr varchar(200)--字符串
declare @centerstr varchar(200) --中间字符串
SET @i=1
set @restr=@instr
set @be=@index
if(@index<>0)
begin
set @be=0
end
SET @n=len(@restr)-len(replace(@restr,'@',''))
set @instr='' --清空
--获取@的位置
set @end=patindex('%@%',@restr)--第一个@ 的位置
while(@i<=@n+1)
begin
SET @end=patindex('%@%',@restr)--重新确立位置
if(@i=@n+1)
begin
set @end=len(@restr)
end
--set @end=len(@restr)--长度
--截取字符串
if(@i=1 or @i=@n+1 or @i=@index)
begin
set @instr=@instr+substring(@restr,@be,@end);
end
else
begin
set @instr=@instr+substring(@restr,@be,@end-1);
end
--重新开始位置
set @be=@end
--重新赋值字符串
set @restr=substring(@restr,@be+1,len(@restr))
set @be=1
SET @i=@i+1
if (@index<>0)
begin
if(@i<>@index)
begin
set @instr=''
end
else
begin
break
end
end
end
return @instr;
end
--函数漏洞,索引从2 开始
SELECT DBO.SPITSTR('1234aa@56@7@89',2)
字符串操作,sql 倒序,以及截取字符串
最新推荐文章于 2022-05-04 15:02:00 发布