我正在使用Postgres 9.6。我有一个查询要返回数据库中100个最新的标记故事:
select story.id, story.name,
exists (select * from tag where tag.story_id = story.id) is_tagged
from stories
where is_tagged
order by t_published desc
limit 50
union all
select story.id, story.name,
exists (select * from tag where tag.story_id = story.id) is_tagged
from stories
where not is_tagged
order by t_published desc
limit 50
我想对其进行修改,以返回最近的50个带标签的故事和最近的50个未带标签的故事。
我可以这样做工会:
LIMIT CASE
但是有没有一种方法可以在没有联合的情况下通过单个查询执行此操作?我已经读过{{1}},但不确定是否可以根据属性使用。