Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PSQL将逗号分隔的结果选择到联接中_Sql_Postgresql_Comma_Delimited Text - Fatal编程技术网

PSQL将逗号分隔的结果选择到联接中

PSQL将逗号分隔的结果选择到联接中,sql,postgresql,comma,delimited-text,Sql,Postgresql,Comma,Delimited Text,根据此逗号分隔的密钥列表中列出的密钥id,您将如何返回密钥结果 SELECT key_list FROM some.place where key_number=1234; key_list ---------------- {32,35,58,63,89} SELECT key_id, key_result FROM some.otherplace; key_id | key_result -------------------------- 32 | frisb

根据此逗号分隔的密钥列表中列出的密钥id,您将如何返回密钥结果

SELECT key_list FROM some.place where key_number=1234;
   key_list
----------------
{32,35,58,63,89}

SELECT key_id, key_result FROM some.otherplace;
   key_id   |   key_result
--------------------------
32   |   frisbee
33   |   duckhunt
34   |   hairplugs
35   |   sparkplugs

因为您的字符串是有效的PostgreSQL数组文字,所以可以将其用作转换为整数[]的
=ANY
的输入:

SELECT o.key_id, o.key_result 
FROM some.otherplace o
INNER JOIN some.place p ON (o.key_id = ANY (key_list::integer[]))
真的,尽管。。。这是糟糕的模式设计。至于原因,请参见。您至少应该存储一个实际数组


处理逗号分隔值时的其他有用工具有
string\u to_array
unest
,以及
regexp\u split\u to_table

这只解决了一半问题。您应该将查询与
加入
@GordonLinoff一起放入,并在正确思考之前发布