3

Je veux faire ce qui suit à l'aide de SQL Server 2005.SQL Server Split et le tableau Insérer

  1. Créer une procédure stockée qui prend une varchar() virgule "" délimité param

  2. de Split/Exploser la varchar() et insérez les param valeurs dans une table temporaire

Quelque chose qui va faire ce qui suit:

INSERT INTO #temp_table SPLIT('john,peter,sally',','); 

SELECT * FROM #temp_table; 

Existe-t-il une fonction ou une procédure stockée qui effectuera une division?

Si oui, comment ça marche?

Merci

+3

double possible de [Éclate une chaîne SQL] (http: // stackoverflow.com/questions/2647/split-string-in-sql) – Jacob

Répondre

5

SQL Server ne dispose pas d'une fonction split chaîne hors de la boîte, mais vous pouvez en créer un comme this

CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))  
returns @temptable TABLE (items varchar(8000))  
as  
begin  
    declare @idx int  
    declare @slice varchar(8000)  

    select @idx = 1  
     if len(@String)<1 or @String is null return  

    while @idx!= 0  
    begin  
     set @idx = charindex(@Delimiter,@String)  
     if @idx!=0  
      set @slice = left(@String,@idx - 1)  
     else  
      set @slice = @String  

     if(len(@slice)>0) 
      insert into @temptable(Items) values(@slice)  

     set @String = right(@String,len(@String) - @idx)  
     if len(@String) = 0 break  
    end 
return  
end