Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Postgre start with connect by prior

[es] :: PostgreSQL :: Postgre start with connect by prior

[ Pregleda: 4828 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

GORSHTAK
Ivan Matić

Član broj: 136182
Poruke: 285
85.222.171.*



+5 Profil

icon Postgre start with connect by prior16.08.2012. u 17:16 - pre 96 meseci
Koji je najefikasniji/najjednostavniji/najbolji ekvivalent oraclovom upitu:

Code (sql):

SELECT id, parent, opis
  FROM tabela
START WITH id = 1
CONNECT BY prior id = parent;
 
 
Odgovor na temu

michaelk
Michael Kopljan
Software developer
Frankfurt am Main

Član broj: 85498
Poruke: 131
..106.109.adsl.dyn.beotel.net.



+26 Profil

icon Re: Postgre start with connect by prior23.08.2012. u 14:23 - pre 96 meseci
To je neki rekurzivni upit?

nesto kao ovo (CTE) :

Code:

WITH RECURSIVE subtabela AS
(
    SELECT id, parent, opis FROM tabela WHERE id = 1

    UNION ALL

    SELECT t.id, t.parent, t.opis FROM tabela t
               INNER JOIN subtabela st ON t.parent = st.id
)
SELECT * FROM subtabela ;
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
*.tico.rs.

ICQ: 325309560


+2 Profil

icon Re: Postgre start with connect by prior23.08.2012. u 15:09 - pre 96 meseci
Code:

CREATE OR REPLACE FUNCTION connectby(text, text, text, text, text, integer)
  RETURNS SETOF record AS
'$libdir/tablefunc', 'connectby_text_serial'
  LANGUAGE 'c' STABLE STRICT
  COST 1
  ROWS 1000;
ALTER FUNCTION connectby(text, text, text, text, text, integer) OWNER TO postgres;


Ne znam koju verziju PG koristis, ako je manja od 8.2 najverovatnije ce ti javljati gresku
na COST i ROWS, mozes da izbacis to.

Pozivas ovako:

Code:

SELECT ta.id,ta.parrent,ta.opis FROM tabela ta,
CONNECTBY('tabela', 'id','parrent', 'opis', '0',  0) as t(ide int, p_id int, lv int, pos int)
WHERE ta.id = ide


"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

[es] :: PostgreSQL :: Postgre start with connect by prior

[ Pregleda: 4828 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.