środa, 9 października 2013

SQL Server - jak z ciągu dzielonego separatorem zrobić kolumny

create function [dbo].[function]() RETURNS @ResultTable TABLE ( id_tabeli int, atrybut_opis varchar(1000) ) as begin declare @id_w int declare @id_p varchar(50) declare @p int declare @wynik varchar(1000) DECLARE C1 CURSOR READ_ONLY FOR SELECT distinct id_tabeli , id_atrybut FROM dbo.tabela_1 -- [dbo].[v_r_sprawy_przejete_km] OPEN C1 FETCH NEXT FROM C1 INTO @id_w, @id_p WHILE @@FETCH_STATUS = 0 BEGIN while len(@id_p) > 0 begin if PATINDEX('%;%', @id_p) > 0 begin set @p = SUBSTRING(@id_p, 0 , PATINDEX('%;%', @id_p)) set @wynik = (select distinct atrybut_opis from dbo.tabela_2 where id_atrybut = @p) insert @ResultTable(id_tabeli, atrybut_opis) values (@id_w, @wynik) set @id_p = SUBSTRING(@id_p, len(@p)+2, LEN(@id_p)) end else begin set @p = @id_p set @id_p = null set @wynik = (select distinct atrybut_opis from dbo.tabela_2 where id_atrybut = @p) insert @ResultTable(id_tabeli, atrybut_opis) values (@id_w, @wynik) end end FETCH NEXT FROM C1 INTO @id_w, @id_p END CLOSE C1 DEALLOCATE C1 return end

Brak komentarzy:

Prześlij komentarz