分割字符串的问题(再问)
一存储过程中有3个参数 
 如下: 
 ALTER      PROCEDURE   Pro_AddIDS( 
 @IDS   varchar(255), 
 @IDName   varchar(50), 
 @IDLevel   int 
 ) 
 其中@IDS= "1,5,9,6,10 "这样的数据,需要将这些数据分割出来,插到一张表中结构如下: 
 CREATE   TABLE   IDS 
 ( 
       ID   INT, 
       IDName   VARCHAR(50), 
       IDLevel   int 
 ) 
 假设:@IDS= "1,5,9,6,10 ",IDName   = "hello "   得到如下结果 
 /* 
 IDS                           IDName                     IDLevel                                                                                                                   
 -----------   --------------------------------------------------    
 1                                 hello                              null 
 5                                 hello                              null 
 9                                 hello                              null 
 6                                 hello                              null 
 10                              hello                              null   
 请帮下忙,谢谢!
------解决方案--------------------如何将 '2006-01-12|2006-02-13|2006-03-15|2006-11-11|2003-1-1 '按 '| '分割成 
 2006-01-12 
 2006-02-13 
 2006-03-15 
 2006-11-11 
 2003-1-1     
 declare @Days varchar(4000) 
 declare @tmpDay varchar(10) 
 set @Days= '2006-01-12|2006-02-13|2006-03-15|2006-11-11|2003-1-1 ' 
 set @tmpDay= ' ' 
 declare @i int 
 set @i=0 
 while @i <len(@Days) 
 begin  
   set @i=@i+1 
   if SUBSTRING(@Days,@i,1)= '| ' 
      begin 
        print left(@Days,@i-1) 
        set @Days=SUBSTRING(@Days,@i+1,len(@Days)) 
        set @i=0 
      end   
 end 
 print @Days     
 输出结果: 
 2006-01-12 
 2006-02-13 
 2006-03-15 
 2006-11-11 
 2003-1-1     
 一字段信息包括如下:李三|李三@d.com|公司|单位地址|   
 我将查询用(Select)只列出李三及单位地址的方法?   
 create table #t(c1 varchar(100)) 
 insert into #t select  'li4|33@com|mircrosoft|china| ' 
 insert into #t select  'zhang3|zhang3@163.com|IBM|USA| ' 
 insert into #t select  '李三|李三@d.com|公司|单位地址| '     
 select substring(c1,1,charindex( '| ',c1)-1) as name,  
 reverse(substring(reverse(c1) , 2 , charindex( '| ' , reverse(c1) , 2) - 2)) as address  from #t   
 drop table #t   
 name    address    
 -----   ------- 
 li4     china 
 zhang3  USA 
 李三    单位地址   
 (所影响的行数为 3 行)     
 declare @s varchar(20) 
 set @s= '06G512753-08-01 '   
 select  
     parsename(t.s,3) part1, 
     parsename(t.s,2) part2, 
     parsename(t.s,1) part3 
 from  
     (select replace(@s, '- ', '. ') as s) t 
------解决方案----------