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

Reply via email to