Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir tous les blocs séquentiels d'une liste

C'est une façon d'y parvenir en utilisant l'auto-jointure et 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

Edit :j'ai réalisé que cela pouvait être fait avec une seule requête au lieu d'utiliser 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