0
Wie kann ich Kreise in SQL-Tabelle finden? zum Beispiel, wenn dies ist meine Tabelle:SQL bekommen Kreise in Tabelle
From To
x y
y z
z x
I x- bekommen> y-> z-> x
Iam mit SQL
Wie kann ich Kreise in SQL-Tabelle finden? zum Beispiel, wenn dies ist meine Tabelle:SQL bekommen Kreise in Tabelle
From To
x y
y z
z x
I x- bekommen> y-> z-> x
Iam mit SQL
Sie einen rekursiven CTE verwenden können, um Ihre zu erhalten Muster. Probieren Sie das folgende Skript aus und passen Sie es an Ihre Bedürfnisse an.
create table table1(
[from] varchar(max),
[to] varchar(max)
);
insert into table1([From], [To])
values('x', 'y'),
('y', 'z'),
('z', 'x');
--select [From], [To]
--from table1
DECLARE @first_val char(1);
--find the first value
select top(1) @first_val = [From]
from table1;
--recursive cte
;with cte([From], [To]) as (
select [From] , [To]
from table1
where [From][email protected]_val
union all
select c.[From] +'->'+t.[From] , t.[To]
from cte c
join table1 t on t.[From] = c.[To]
where t.[From] != @first_val
)
select [From]+'->'+[To]
from cte
where [To][email protected]_val;
--drop table table1;
Mögliche Duplikat [Detecting zirkuläre Verweise in SQL] (http://stackoverflow.com/questions/7540760/detecting-circular-references-in-sql) – Stavr00
Ich verstehe nicht, was ist es? Ich möchte die Abfrage als reine SQL-Abfrage – user3703910
Was haben Sie versucht? Sie können nicht erwarten, dass wir Code für Sie schreiben :) –