sql下拆分字符串[MSSQL防范]
本文“sql下拆分字符串[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
--拆分字符卡
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);
end
if isnull(@ipos,0)<1 break
end
return
end
--循环获得数据(存储历程版本)
alter proc c
as
begin
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
end
select * from #w
drop table #T
drop table #w
end
--exec c
--循环获得数据(函数版本) www.2cto.com
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
end
end
return
end
--select * from s1()
ss表构造以下
ID,name两列
摘自 事在人为的专栏
以上是“sql下拆分字符串[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:一道归并成就最高科目的办理办法
- ·下一篇文章:数据库中数据列转行并均分显示
- ·中查找“sql下拆分字符串”更多相关内容
- ·中查找“sql下拆分字符串”更多相关内容