我想检查数组中是否存在值,如果不存在,我想为其返回NULL行,而不是没有行。
SELECT
users.id
FROM
users
WHERE
users.name = ANY('{ John, avocado, Carl }'::text[]);
当前返回
id
1
2
我希望它退回
id
1
NULL
2
由于avocado
表中没有users
。
答案 0 :(得分:1)
SELECT users.id
FROM unnest('{John, avocado, Carl}'::text[]) WITH ORDINALITY AS a(name, num)
LEFT JOIN users USING (name)
ORDER BY a.num;
id
----
2
1
(3 rows)