我想选择数据库中不存在的元素,但存在于postgres数组中。要可视化:
的数据
假设我的表中有这样的数据:
的
经过一些研究,我已经接近了,但我没有得到我所期望的。我目前的查询是:
WITH res AS (SELECT entity_number FROM entity_coordinates WHERE entity_number IN (
'MG1735401016/6',
'NON-EXIST-1',
'P171025002876-1',
'P170321400780-1',
'NON-EXIST-2'
))
SELECT *
FROM unnest(ARRAY[
'MG1735401016/6',
'NON-EXIST-1',
'P171025002876-1',
'P170321400780-1',
'NON-EXIST-2'
]) item_id
FULL OUTER JOIN res ON entity_number=item_id
字符串
我的预期结果是:
型
我尝试了不同的加入类型,但没有运气。
任何帮助都很感激
2条答案
按热度按时间1wnzp6jl1#
所以,这个查询应该可以在没有任何
JOIN
s的情况下实现你想要做的事情(NOT EXISTS
是检查是否有任何entity_number对应于str
(数组元素)的最直接的方法):字符串
fcg9iug32#
经过一番研究,我发现了另一个使用
EXCEPT
的解决方案:字符串
但我的基准测试显示,@nafrolov的解决方案快了近一倍,所以我接受了他的答案