On Nov 14, 2006, at 23:03 , MicroUser wrote:
> I need sorted result but the way like this:
>
> 0 | Anna
> 3 | Fernando
> 2 | Link
> 1 | Other
>
> Record '1 | Other' must by at the end of query result.
It's not apparent from your example that you want something other
than a purely lexicographic sort order (after all, "Other" comes
after "Link", "Fernando" and "Anna", so "order by name" already gets
you what you want), but I assume that's what you mean.
If your table is sufficiently small, and the complexity of the actual
query sufficiently low, prepending an expression sort key might suffice:
select * from foo
order by (case name when 'Other' then 1 else 0 end), name
Note that PostgreSQL is slow at evaluating case expressions, and this
might prove too slow. 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'
Alexander.