我想要将the向量数组的词放在一列中,每一行一个。我可以首先取消数组,然后再用以下方法解锁产生的the向量:
SELECT (unnest(unnest(my_array))).lexeme
FROM my_table
WHERE id = 1;这意味着:
lexeme
----------
foo
bar
baz
...然而,我注意到,如果我试图在FROM子句中这样做:
SELECT lexeme
FROM unnest(
(SELECT unnest(my_array) FROM my_table WHERE id = 1)
);我得到:
错误:由用作表达式的子查询返回的多行
所以,我最终会这么做:
SELECT lexeme
FROM (
SELECT (unnest(col1)).lexeme
FROM (
SELECT unnest(my_array)
FROM my_table
WHERE id = 1
) AS t(col1)
) AS t2;我得到了最初的结果。但这是冗长的。所以我想知道:
发布于 2021-09-05 15:57:51
您不应该在select中使用set返回操作符,即使PostgreSQL允许它。
在from中放置它们并使用lateral连接要好得多
SELECT lexeme
FROM my_table t,
lateral unnest(array_column) AS vector,
lateral unnest(vector)
WHERE t.product_id = 1;https://dba.stackexchange.com/questions/299062
复制相似问题