日期:2014-05-17  浏览次数:20784 次

求一个表的简单SQL
一个表结构简单,字段如下id  name   age  type   ,
 type  是  int类型,可以包含三种数据  0  负  正

现在要求查询这个表的数据  先根据type排序  先 0  然后 -  然后+,
最后按id排序

在线等解
排序查询?多条件

------解决方案--------------------
select id ,name,  age,  type from tab where type=0 order by id
union 
select id ,name,  age,  type from tab where type<0 order by id
union
select id ,name,  age,  type from tab where type>0 order by id

------解决方案--------------------
select * from tb_name order by decode(sign(type),0,0,-1,1,2),id