SQL 字串拆分

2021-05-05 21:02:39 字數 2295 閱讀 5432

有這樣乙個字串(中,國,中,人民,國,現代工業化程序,國)

處理過之後變成(中,國,人民,現代工業化程序)

以下是我的方法,有什麼不對的地方還請各位指點

------------------刪除重複的字元

declare @v1 nvarchar (100)

declare @v2 nvarchar (100)

declare @v3 nvarchar (100)

declare  @split nvarchar (100)

--n',,,,,中,國,中,人民,,,,,國,現代工業化程序,國,,,'

set @v1=n',  ,,     ,,中,國,中,人民,  ,, ,    ,國,現代工業化程序,國,  ,,'

set @v3=''

set @split=','

/*@v1 :儲存臨時字串

@v2 :獲取兩個分隔符中的字串

@v3 :儲存最後沒有重複的字串  

*/if left(@v1,1)<>@split

set @v1=@split+@v1

if right(@v1,1)<>@split

set @v1=@v1+@split

while len(@v1)>len(@split)*2

begin

set @v2=substring (@v1,len( @split),charindex ( @split,@v1,len ( @split)+1))

if len(@v2)>len (@split)*2

begin

set @v2=right (@v2,len(@v2)-1);

if ltrim (rtrim (@v2))<>@split                

set @v3=@v3+ltrim (rtrim (@v2));

set @v1= replace (@v1,@v2,'')

endelse --如果有連續的分割符,刪除.

set @v1=stuff (@v1,len (@split)+1,len (@split),'')

endset @v3=ltrim (rtrim (@v3))

while (left(@v3,1)=',')

set @v3=ltrim (rtrim (right(@v3,len (@v3)-1)))

while (right(@v3,1)=',')

set @v3=ltrim (rtrim (left (@v3,len (@v3)-1)))

select @v3

-------------------提取中文

declare @v1 nvarchar(100)

set @v1=n'ab呀吖3d%華e座//f456'

while 

patindex ('%[a-z,0-9,%]%',@v1)>0

begin

-- set @v2=isnull(@v2,'')+substring(@v1,patindex('%[0-9]%',@v1),1);

set @v1=stuff (@v1,patindex ('%[a-z,0-9,%,/]%',@v1),1,'')

endselect @v1

-------------------提取字母,數字

declare @v1 nvarchar (100)

set @v1=n'ab呀吖3d%華e座//f456'

while 

patindex ('%[^a-z]%',@v1)>0

begin

-- set @v2=isnull(@v2,'')+substring(@v1,patindex('%[0-9]%',@v1),1);

set @v1=stuff (@v1,patindex ('%[^a-z]%',@v1),1,'')

endselect @v1

-------過濾重複字元

declare @v1 nvarchar (100)

declare @v2 nvarchar (100)

--n',,,,,中國中人**現代工業化程序國,,,'

set @v1=n',,,,,中國中人**現代工業化程序國,,,'

while

len (@v1)>0

begin

set  @v2=isnull (@v2,'')+left (@v1,1)

set  @v1=replace (@v1,left (@v1,1),'')

endselect @v2

sql拆分字串

拆分字元卡 create function s id varchar 20 編號串 varchar max returns tab table id varchar 20 編號 varchar 30 begin declare ipos int,bh varchar 20 while 1 0 beg...

拆分字串

拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...

拆分字串

本函式可以將 目標字串 以 指定字串 進行拆分,並通過表結構返回結果。如下 create or replace type str split is table of varchar2 4000 create or replace function splitstr p string in varch...