您可以使用case语句来执行此操作:
select * from table1
order by case when val = 'a' then 1 else 0 end, val
Run Code Online (Sandbox Code Playgroud)
这将对"a"之前不是"a"的所有值进行排序,然后按值排序.
正如Zorn先生在评论中所指出的那样,以及Luke101在另一个答案中的指出,这句话可以简化为:
select * from table1
order by val = 'a', val
Run Code Online (Sandbox Code Playgroud)
前一个解决方案应该适用于所有符合ANSI标准的数据库,后者适用于MySQL,Postgresql和其他一些数据库(例如,不适用于MSSQL).