Mega Code Archive

 
Categories / PostgreSQL / Select Query
 

Using function in subquery in where statement

postgres=# CREATE TABLE myTable ( postgres(#          id int, postgres(#          sid int, postgres(#          name text); CREATE TABLE postgres=# postgres=# insert into myTable values(1,2,'a'); INSERT 0 1 postgres=# insert into myTable values(2,3,'b'); INSERT 0 1 postgres=# postgres=# select * from myTable;  id | sid | name ----+-----+------   1 |   2 | a   2 |   3 | b (2 rows) postgres=# postgres=# postgres=# CREATE FUNCTION getData(int) RETURNS SETOF myTable AS $$ postgres$#    SELECT * FROM myTable WHERE id = $1; postgres$# $$ LANGUAGE SQL; CREATE FUNCTION postgres=# postgres=# SELECT * FROM myTable postgres-#    WHERE sid IN (select sid from getData(myTable.id) z postgres(#                           where z.id = myTable.id);  id | sid | name ----+-----+------   1 |   2 | a   2 |   3 | b (2 rows) postgres=# postgres=# drop function getData(int); DROP FUNCTION postgres=# drop table myTable; DROP TABLE postgres=#