1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
/*
create table noeud
(
id char(1) not null primary key,
avant char(1) null references noeud(id),
apres char(1) null references noeud(id),
unique (avant, apres)
);
go
insert into noeud (id, avant, apres) values ('A', null, 'B'), ('B', 'A', 'C'), ('C', 'B', null);
*/
with pred (id, avant, apres, concatene)
as
(
select id, avant, apres, cast(id as varchar(max))
from noeud
union all
select v.id, v.avant, v.apres, cast(concat(v.id, ',', t.concatene) as varchar(max))
from noeud v
inner join pred t on t.avant = v.id
)
select d1.id, d1.concatene
from pred d1
where not exists
(
select 'j''aime les nouilles pas toi ?'
from pred d2
where d2.concatene like concat('%', d1.concatene, '%') and d1.concatene <> d2.concatene
) |
Partager