Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obter todos os blocos sequenciais de uma lista


Esta é uma maneira de usar auto-junção 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

Editar:percebi que isso poderia ser feito com uma única consulta em vez de usar 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