日期:2014-05-18 浏览次数:20726 次
create table tb(col varchar(100))
insert into tb values('5612@朱岚;')
insert into tb values('5708@王洁琪;5117@刘桂珍;')
insert into tb values('5594@徐婷;5708@王洁琪;5426@谢静佳;5091@刘照晶;')
go
create function dbo.f_str(@col varchar(100)) returns varchar(100)
as
begin
declare @str varchar(100)
declare @i as int
declare @j as int
set @str = ''
set @i = 1
set @j = len(@col) - len(replace(@col , ';' , ''))
while @i <= @j
begin
set @str = @str + substring(@col , charindex('@',@col) + 1 , charindex(';',@col) - charindex('@',@col) )
set @col = substring(@col , charindex(';',@col) + 1 , len(@col))
set @i = @i + 1
end
return @str
end
go
--调用函数
select newcol = dbo.f_str(col) from tb
drop function dbo.f_str
drop table tb
/*
newcol
-------------------------
朱岚;
王洁琪;刘桂珍;
徐婷;王洁琪;谢静佳;刘照晶;
(所影响的行数为 3 行)
*/