Sortowanie wyników w wyrażeniu CTE

Sortowanie wyników w wyrażeniu CTE
D9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
0

hej,
Mam wyrażenie CTE:

Kopiuj
with drzewo
(
id, id_rodzica, imie, pozycja
)
as
(
select c.id, c.id_rodzica, c.imie, ROW_NUMBER() OVER (ORDER BY c.imie)  as pozycja
from czlowiek c

where c.id = 55

union all

select child.id, child.id_rodzica, child.imie,  ROW_NUMBER() OVER (ORDER BY child.imie)  as pozycja
from czlowiek child

inner join drzewo as parent on child.id_rodzica = parent.id
)

select *
from drzewo

O ile to zapytanie działa prawidłowo dla mssql to dla h2 jest błąd, że jest nieprawidłowa składnia. Wiem, że w h2 nie ma row_number() over().
Czym mogę to zastąpić by mieć prawidłowo posortowane wyniki w mssql i h2 jednocześnie?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3890
0

chcesz mieć posortowane czy pole pozycja narastająco?

Bo posortować to poprzez dodanie order by.

W zapytaniu: row_number() w h2 to rownum(), poza tym Recursive Queries w H2 są dodane eksperymentalnie i maja inną składnie (http://www.h2database.com/html/advanced.html#recursive_queries) więc obejście numeru wiersza nie pomoże za wiele.

D9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 54
0

chciałem sortować wewnątrz "with". Ale ok, poradziłem sobie przez manewrowanie kolumnami w order by.
dzieki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.