【发布时间】:2019-02-11 20:02:14
【问题描述】:
以下返回“{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[]
)
但如果我尝试对第一个查询的结果执行相同操作,我会收到“operator does not exist: 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,PgAdmin 1.22.1
【问题讨论】:
标签: sql arrays postgresql select