查询所有记录,并且要让state='1'的记录排在前面

查询所有记录,并且要让state='1'的记录排在前面:
SELECT * FROM expense order by (case state when '1' then '1' else '2' end) asc;

或者:
select * from expense where state='1'
union all
select * from expense where state<>'1';
应该用union all,如果用union会把两个语句的综合结果排序其结果跟select * from table没差别,union all不排序,他会把第一个sql的结果放在前面,后一个sql的结果紧随其后

你可能感兴趣的:(sql)