--拆分字元卡
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
begin
set @ipos=charindex(',',@編號串,1)
if @ipos>0
set @bh=substring(@編號串,1,@ipos-1)
else
set @bh=@編號串
set @編號串=substring(@編號串,@ipos+1,len(@編號串))
if len(@bh)>0
begin
insert into @tab(id,編號)values(@id,@bh);
endif isnull(@ipos,0)<1 break
endreturn
end--迴圈獲取資料(儲存過程版本)
alter proc c
asbegin
create table #w
(id varchar(20),
name varchar(20)
)declare @編號 varchar(max)
declare @id varchar(max)
select row_number() over(order by getdate()) as rownumber ,* into #t from ss
declare @i int;
set @i=1;
while(@i<=(select count(*) from ss))
begin
set @編號=(select name from #t where rownumber=@i)
set @id=(select id from #t where rownumber=@i)
insert into #w select * from s(@id,@編號)
set @i=@i+1
endselect * from #w
drop table #t
drop table #w
end--exec c
--迴圈獲取資料(函式版本)
alter function s1()
returns @tab table(id varchar(20),編號 varchar(30))
begin
begin
declare @編號 varchar(max)
declare @id varchar(max)
declare @i int;
set @i=1;
while(@i<=(select count(*) from ss))
begin
set @編號=(
select name from
(select row_number() over(order by getdate()) as rownumber ,* from ss
)a where a.rownumber=@i
)set @id=(
select id from
(select row_number() over(order by getdate()) as rownumber ,* from ss
)b where b.rownumber=@i
)insert into @tab select * from s(@id,@編號)
set @i=@i+1
endend
return
end--select * from s1()
ss表結構如下
id,name兩列
SQL 字串拆分
有這樣乙個字串 中,國,中,人民,國,現代工業化程序,國 處理過之後變成 中,國,人民,現代工業化程序 以下是我的方法,有什麼不對的地方還請各位指點 刪除重複的字元 declare v1 nvarchar 100 declare v2 nvarchar 100 declare v3 nvarchar...
拆分字串
拆分乙個字串,獲取每一組的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...