[mssql]字符串移除指定長度字符

趁着空閒時間編寫刪除此字符串指定位置之後的指定數目字符,豐富字符串函數增強sql字符串函數功能,以方便大家使用。

--刪除此字符串指定位置之後的指定數目字符
--@count <=0 之後所有的字符
create function fun_Remove(@txt nvarchar(2000),@index int,@count int)
returns nvarchar(2000)
as
begin
    declare @len int
    set @len=len(@txt)
    --@count <=0 之後所有的字符
    if @count<1 begin
        if @index <1 begin
            return ''
        end
        return substring(@txt,0,@index)
    end
    if @index+@count<1 begin
        --刪除字符總長度<1
        return @txt
    end else if @index+@count>=@len begin
        --刪除字符從指定位置的長度超過原子符長度
        if @index<1 begin
            return ''
        end
        return substring(@txt,0,@index)
    end
    -- 移除區域間字符
    if @index<1 begin
        return substring(@txt,@index+1,@len-@index-@count)
    end

    return substring(@txt,0,@index)+substring(@txt,@index+@count,@len-@index-@count+1)
end
go

測試:

select dbo.fun_Remove('http://www.naoqiu.com',5,1) 

--結果 :http//www.naoqiu.com


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章