postgresql:选择返回ARRAY

时间:2011-05-12 17:49:11

标签: sql arrays postgresql

我有一张桌子:

CREATE TABLE tbl_temp (id serial, friend_id int, name varchar(32));  

我希望我可以运行以下SQL:

PREPARE x AS SELECT {$1,friend_id} FROM tbl_temp WHERE id = ANY($2);  
EXECUTE x(33, ARRAY[1,2,3,4])

我基本上都在寻找一个声明,它将返回一个包含两个整数的数组,其中第一个将是用户输入,第二个将来自表格列,如friend_id

在PostgreSQL中真的有可能吗?

SELECT($ 1,friend_id)FROM tbl_temp;

的结果
EXECUTE x(44);
  row     
--------  
 (44,1)  
 (44,2)  
 (44,3)  
(3 rows)

如果我使用PQgetvalue(PGres, 0, 0),结果如何:{44,45}或类似(44,45)

2 个答案:

答案 0 :(得分:19)

我想你想使用array constructor syntax

SELECT ARRAY[$1, friend_id] FROM tbl_temp WHERE id = ANY($2)

答案 1 :(得分:4)

我不确定我明白你想要什么...

返回数组,执行此操作。

SELECT (44, "friend_id") FROM "tbl_temp" WHERE id = ANY(ARRAY[1,2,3,4]);