查询结果如下
SELECT "students"."full_name" FROM "students" WHERE "students"."id" IN (1, 2, 3, 6, 785, 1, 2, 3, 785, 6)
现在只返回5个结果。但是我想在一个查询中得到10个结果。我该怎么做?
vmdwslir1#
不能使用in子句,但可以使用join:
SELECT s.full_name FROM students s JOIN unnest(array[1, 2, 3, 6, 785, 1, 2, 3, 785, 6]) as x(id) on s.id = x.id;
更符合标准的版本将是 values 条款
values
SELECT s.full_name FROM students s JOIN ( values (1), (2), (3), (6), (785), (1), (2), (3), (785), (6) ) as x(id) on s.id = x.id;
cqoc49vn2#
答案是“不”,但是,你可以这样做:
SELECT full_name FROM "students" s INNER JOIN (VALUES (1), (2), (3), (6), (785), (1), (2), (3), (785), (6)) v (id) ON s.id = v.id
但排序顺序将不确定。
2条答案
按热度按时间vmdwslir1#
不能使用in子句,但可以使用join:
更符合标准的版本将是
values
条款cqoc49vn2#
答案是“不”,但是,你可以这样做:
但排序顺序将不确定。