SQL 字串截取 類似split

來源:互聯網
上載者:User

標籤:

/*
資料表值函式
將一個字串拆分成多個。
類似Split
*/

drop function F_SYS_Split
create function F_SYS_Split(@VarcharA varchar(1000),@VarcharB varchar(1))
returns @tab table(v varchar(100))
as
begin
if LEN(@VarcharA)>0 and LEN(@VarcharB)>0
begin
while(CHARINDEX(@VarcharB,@VarcharA)>0)
begin
insert into @tab(v)values ( SUBSTRING(@VarcharA,1,CHARINDEX(@VarcharB,@VarcharA)-1));
set @VarcharA=SUBSTRING(@VarcharA,(CHARINDEX(@VarcharB,@VarcharA)+1),LEN(@VarcharA));
end
insert into @tab(v)values (@VarcharA);
end
return;
end

select * from dbo.F_SYS_Split(‘1,4,2,4,‘,‘,‘);


/*
@VarcharA 要處理的字串
@VarcharB 分割符
@times 次數

例:
select dbo.F_SYS_Split(‘A;B;C;E;A;D;F‘,‘;‘,4)-- 結果 A;B;C;E;
select dbo.F_SYS_Split(‘A,B,C,E,A;D;F‘,‘;‘,4)-- 結果 A,B,C,E,A;D;FA,B,C,E,A;D; 分割符小於4個原樣輸出

select dbo.F_SYS_Split(‘A,B,C,E,A;D;F‘,‘,‘,4)-- 結果 A,B,C,E, 分割符小於4個原樣輸出
select dbo.F_SYS_Split(‘A,B,C,E,A,D,F‘,‘,‘,6)--結果 A,B,C,E,A,D,

*/
create function F_SYS_Split(@VarcharA varchar(1000),@VarcharB varchar(1),@times int)
returns varchar(1000)
as
begin
declare @ret varchar(1000)=‘‘;
declare @i int=0;
if @times is null or @times<=0 set @times=4;

if LEN(@VarcharA)>0 and LEN(@VarcharB)>0
begin
if LEN(@VarcharA)-LEN(replace(@VarcharA,@VarcharB,‘‘))<3
begin
set @[email protected];
end
while(CHARINDEX(@VarcharB,@VarcharA)>0 and @i<@times)
begin
set @[email protected]+ ( SUBSTRING(@VarcharA,1,CHARINDEX(@VarcharB,@VarcharA)-1))[email protected];
set @VarcharA=SUBSTRING(@VarcharA,(CHARINDEX(@VarcharB,@VarcharA)+1),LEN(@VarcharA));
set @[email protected]+1;
end

end
return @ret;
end

SQL 字串截取 類似split

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.