传入一个字符串, 123,54,343,34,343 大约有300到500个。
传入一个日期 2012-10-30得到结果:
123 2012-10-30
54 2012-10-30
343 2012-10-30
34 2012-10-30
343 2012-10-30
因为传入的字符串可能比较多,所以希望是最优算法。可用存储过程。谢谢。
传入一个日期 2012-10-30得到结果:
123 2012-10-30
54 2012-10-30
343 2012-10-30
34 2012-10-30
343 2012-10-30
因为传入的字符串可能比较多,所以希望是最优算法。可用存储过程。谢谢。
returns @temp table(F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end
----调用
select *,'2012-10-30' as 日期 from dbo.f_splitstr('1,2,3,4',',')
create function f_split(@c varchar(2000),@split varchar(2))
returns @t table(col varchar(20))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
go
select * from dbo.f_split('dfkd,dfdkdf,dfdkf,dffjk',',')
drop function f_split
col
--------------------
dfkd
dfdkdf
dfdkf
dffjk