Mysql
 sql >> Database >  >> RDS >> Mysql

Ottieni tutti i blocchi sequenziali da un elenco

Questo è un modo per farlo usando il self-join e union .

select t1.val
from t t1
join t t2 on t1.val = t2.val-1
union
select t2.val
from t t1
join t t2 on t1.val = t2.val-1
order by 1

Modifica:mi sono reso conto che questo poteva essere fatto con una singola query invece di usare union .

select distinct t1.val
from t t1
join t t2 on t1.val = t2.val-1 or t1.val = t2.val+1
order by 1