Как передать целочисленный массив в предложение IN? - PullRequest
4 голосов
/ 01 ноября 2010

Я хочу передать массив целых чисел из входных параметров моей функции postgresql в предложение sql IN.

Во что и как я могу преобразовать такой массив?

Ответы [ 3 ]

5 голосов
/ 01 ноября 2010

У меня была такая же проблема в последнее время.

Смотрите здесь:

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 голос
/ 02 ноября 2010

я обычно использую неявное преобразование

выберите '{1,2,3,4,5}' :: integer []

1 голос
/ 01 ноября 2010

В принципе, вы не можете.То, что вы можете сделать, это передать список через запятую и разделить его на части в своей функции. Вот несколько примеров использования SQL Server, но я уверен, что они могут быть переведены.

Если this (PostgreSQL) это то, о чем вы говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...