T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。
一,用临时表作为数组。

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