>> I imagine your original would be at risk of LIMITing out the very row you >> seek to get at the "top", since you don't have an ORDER BY to tell it which >> ones to keep during the outer LIMIT. Here is an old thread about combining ORDER BY with UNION: http://www.postgresql.org/message-id/16814.1280268424@xxxxxxxxxxxxx So I think this query would work: select * from topic where id = 1000 union all (select * from topic where id <> 1000 order by bumped_at desc limit 29) order by case when id = 1000 then 0 else 1 end, bumped_at desc ; > I need to be able to offset and limit the union hack in a view, which > is proving very tricky. Since this is sort of a "parameterized view" (which Postgres does not have) you are probably better off figuring out how to make the UNION query work with your ORM. What ORM is it? Maybe someone here can help you with that. Or maybe instead of a view you could write a set-returning function, e.g. as described here: http://stackoverflow.com/questions/11401749/pass-in-where-parameters-to-postgresql-view Paul -- _________________________________ Pulchritudo splendor veritatis. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general