如何将整数数组传递给IN子句?

时间:2010-11-01 12:36:35

标签: sql postgresql

我想将postgresql函数的输入参数中的整数数组传递给sql IN子句。

进入什么以及如何转换这样的数组?

3 个答案:

答案 0 :(得分:5)

我最近遇到了同样的问题。

看这里:

http://postgresql.1045698.n5.nabble.com/Using-PL-pgSQL-text-argument-in-IN-INT-INT-clause-re-post-td3235644.html

希望它有所帮助。

以下是一个示例函数:

CREATE OR REPLACE FUNCTION "GetSetOfObjects"(ids text)
  RETURNS SETOF record AS
$BODY$select *
from objects
where id = any(string_to_array($1,',')::integer[]);$BODY$
  LANGUAGE sql IMMUTABLE

答案 1 :(得分:1)

基本上你不能。你可以做的是传入一个以逗号分隔的列表,并在你的函数中拆分它。 Here are some examples使用SQL Server,但我确信它们可以翻译。

除非您this (PostgreSQL)正在谈论。

答案 2 :(得分:1)

我通常使用隐式转换

选择'{1,2,3,4,5}'::整数[]