求最优算法,该怎么处理

求最优算法传入一个字符串,123,54,343,34,343 。。。大约有300到500个。传入一个日期2012-10-30得到结果:12320

求最优算法
传入一个字符串, 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


因为传入的字符串可能比较多,所以希望是最优算法。可用存储过程。谢谢。
 

[解决办法]

SQL code
create   function   f_splitstr(@SourceSql   varchar(8000),@StrSeprate   varchar(100))     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',',')
[解决办法]
简单的拆分的话,用内置函数最快
[解决办法]
就是一般的循环拆分了。
SQL code
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
[解决办法]
4个以下用parsename 4个以上用自定义函数。