Ho le seguenti tabelle:uso ricorsive tavolo comune espressioni per trovare no.s consecutivi da due tabelle
Actual Optional
------ --------
4 3
13 6
20 7
26 14
19
21
27
28
quello che devo fare è selezionare:
1) tutti i valori Tabella "reale".
2) selezionare i valori da tabella "opzionali" se formano una serie consecutiva con la tabella "reale" valori
Il risultato atteso è:
Answer
------
4
13
20
26
3 --because it is consecutive to 4 (i.e 3=4-1)
14 --14=13+1
19 --19=20-1
21 --21=20+1
27 --27=26+1
28 --this is the important case.28 is not consecutive to 26 but 27
--is consecutive to 26 and 26,27,28 together form a series.
Ho scritto una query utilizzando ricorsiva cte ma è in loop per sempre e fallisce dopo che la ricorsione raggiunge 100 livelli. Il problema che ho affrontato è di 27 partite con 26, 28 partite con 27 e 27 con 28.again 28 con 27 ... (per sempre)
Ecco la domanda che ho scritto:
with recurcte as
(
select num as one,num as two from actual
union all
select opt.num as one,cte.two as two
from recurcte cte join optional opt
on opt.num+1=cte.one or opt.num-1=cte.one
)select * from recurcte
È questo compito? Perché la stipula CTE? –
questo non è compito. Questa è una piccola parte di un grosso problema che ho.Io ho scritto la query per la maggior parte. Il problema deve essere scritto in una singola query. Questo è il motivo per cui una clausola di cte – psy
Quindi è possibile rimuovere questa clausola sulle CTE recursive, quindi? –