There are times when sorting your resultset by the primary key doesn’t accomplish what you need. One way to get around this is to create a sortable column dynamically in your query using the CASE function.
SELECT name, title, priority = (CASE title when 'President' then 1 when 'Vice President' then 2 when'Secretary' then 3 when 'Treasurer' then 4 end)FROM executiveORDER BY priority
This example gives each title a priority and sorts by it. This could have been accomplished using a second table and joining to it?but why do that if you don’t need to?