> For larger tables, you may have to resort to a > union: > > select * from foo where name != 'Other' order by name > union > select * from foo where name = 'Other'
Alas, this suggestion is wrong on two counts: (a) UNION expects a single ORDER BY that applies to the whole recordset and which has to come at the end; (b) UNION re-sorts anyway (it needs to eliminate the dupes) -- maybe you are thinking UNION ALL? So, to follow your advice he may want a query like this, although it seems quite silly and there still isn't an ironclad guarantee re. the final result sorting: select * from (select * from foo where name != 'Other' order by name) x union all select * from foo where name = 'Other' ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match