Далее возвращается « {3130,3135,2179,3186} », введите « INTEGER [] »:
SELECT
array_agg(c) AS c
FROM
(
SELECT 3130::INTEGER AS c
UNION
SELECT 3135::INTEGER AS c
UNION
SELECT 2179::INTEGER AS c
UNION
SELECT 3186::INTEGER AS c
) AS v
Если я попытаюсьнайти число «3186» путем непосредственного преобразования текста в целочисленный массив, он работает просто отлично:
SELECT 3186::INTEGER = ANY
(
'{3130,3135,2179,3186}'::INTEGER[]
)
Но если я попытаюсь сделать то же самое с результатом первого запроса, я получу " оператор не существует: integer = integer []"сообщение об ошибке:
SELECT 3186::INTEGER = ANY
(
SELECT
array_agg(c) AS c
FROM
(
SELECT 3130::INTEGER AS c
UNION
SELECT 3135::INTEGER AS c
UNION
SELECT 2179::INTEGER AS c
UNION
SELECT 3186::INTEGER AS c
) AS v
)
Что я делаю не так?
Я использую PostgreSQL 9.5.3, PgAdmin1.22.1