Tenho uma tabela assim:
Lat1 Lng1 Lat2 Lng2 ---- ---- ---- ---- 1 1 2 2 2 2 5 5 3 3 4 4 4 4 3 3 5 5 4 4
É possível retornar as linhas na seguinte ordem?
Lat1 Lng1 Lat2 Lng2 ---- ---- ---- ---- 1 1 2 2 2 2 5 5 5 5 4 4 4 4 3 3 3 3 4 4
Existe uma rowid
coluna única.
Os pares (Lat1,Lng1)
e (Lat2,Lng2)
sempre serão únicos.
lat1
e long1
de linha n+1
deve ser igual a lat2
e long2
de linha n
.
Você pode fazer isso com um CTE recursivo hierárquico.
O único problema é que você tem um loop em seus dados, devido a haver
3,3
,4,4
e4,4
,3,3
.A
WHERE lat1=1 and lng1=1
parte especifica a base da hierarquia (que provavelmente é o início de uma jornada, neste caso).Experimente meu script com dados de amostra diff.
Eu não acho que você precisa
Recursive CTE
fazer isso.Funciona em
Sql server 2012+
Observe também
CTE
querow_number
pode ou não exigir na vida real, dependendo dos dados reais. É apenas paraordering
fins.