我在用PostgreSQL。如果我在查询中有一个id,请说:
select * from public.record where id in (1,5,1);
这只会给我两行,因为id 1有重复项。但如果我想显示一组记录,其中包含:
id | value
1 | A
5 | B
1 | A
不管我为什么要这么做,这有可能吗?
最佳答案
可以通过连接值来执行此操作:
with ids (id) as (
values (1),(5),(1)
)
select r.*
from public.record r
join ids on r.id = ids.id;
如果需要保持参数列表的顺序,则需要添加要排序的列:
with ids (id, sort_order) as (
values
(1, 1),
(5, 2),
(1, 1)
)
select r.*
from public.record r
join ids on r.id = ids.id
order by ids.sort_order;
关于sql - 在ID IN查询中检索相同数量的记录,即使有重复也是如此,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36857624/