Héctor Alonso Lozada Echezuría escribió:
> Si quisiera listar los elementos de la tabla los cuales pertenecen a B
> entonces hago lo siguiente:
>
> SELECT * FROM tabla WHERE ruta[1] = 1 AND ruta[2] = 1;
alvherre=# create table hector (a "char", ruta int[]);
CREATE TABLE
alvherre=# insert into hector values ('A', '{1}'), ('B', '{1,1}'), ('C',
'{1,1,1}'), ('D', '{1,1,1,1}'), ('E', '{1,1,1,2}'), ('F', '{1,1,1,3}');
alvherre=# select * from hector where ruta[1:2] = '{1,1}';
o
alvherre=# select * from hector where ruta[1:2] = (select ruta from hector
where a = 'B');
a │ ruta
───┼───────────
B │ {1,1}
C │ {1,1,1}
D │ {1,1,1,1}
E │ {1,1,1,2}
F │ {1,1,1,3}
(5 filas)
(¿quizás te sirva usar contrib/ltree?)
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services