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
środa, 9 października 2013
SQL Server - jak z ciągu dzielonego separatorem zrobić kolumny
Subskrybuj:
Posty (Atom)