`

字符串操作,sql 倒序,以及截取字符串

 
阅读更多

--------字符串倒序
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)

分享到:
评论

相关推荐

    sqlserver (parse name)字符串截取的方法

    代码如下:parsename可以返回四个值 = Object name = Schema name = Database name = Server name select parsename(ip,1) from cs,2,3,4 中的... 您可能感兴趣的文章:SQL截取字符串函数分享SQL 截取字符串应用代码

    用sql语句获取文件扩展名

    - **Substring 函数**:此函数根据找到的位置截取字符串,由于是从字符串的开头开始截取,因此能够直接获得扩展名部分。 - **第二个 Reverse 函数**:最后再次反转字符串,恢复扩展名的正确顺序。 #### 实践应用 ...

    PHP反转字符串函数strrev()函数的用法

    8. `strstr()`:获取指定字符串后的所有字符,常用于截取字符串。 9. `explode()`:按照指定的分隔符将字符串切割成数组。 了解并熟练运用这些函数,能够极大地提升你在处理PHP字符串时的效率和灵活性。在开发过程...

    Sql Server基本函数

    - `right(char_expr,int_expr)`:返回字符串的右端int_expr个字符,常用于截取字符串的尾部。 - `upper(char_expr)` 和 `lower(char_expr)`:分别将字符串转换为大写和小写,适用于大小写不敏感的操作。 - `space...

    达内JAVA软件工程师 培训资料 Oracle数据库部分讲义

    - `UPPER/LOWER`: 转换字符串为大写或小写。 - `INITCAP`: 首字母大写。 - `SUBSTR`: 截取子串。 - `LENGTH`: 字符串长度。 - `LPAD/RPAD`: 左右填充。 - `REPLACE`: 替换字符。 - `TRIM`: 去除两端空白字符...

Global site tag (gtag.js) - Google Analytics