order by 1表示按select子句中的第一个字段进行排序,不管他是什么。 一般用在union时。 比如 select col1,col2,col3 from a union select col4,col5,col6 from b order by 1; 是按union之后的结果集的第一个字段来进行排序。 order by -1没见过。 另外你注意bobo的写法不是代表着order by 1 or order by -1。 你不能把值代入算出这个结论,那是一个整体。 既如果等于2,当作-1来参与排序,如果不等于2,则按原ID参与排序。
select * from test where col=...
union all
select * from test where col<>... order by id desc ;
select * from tabname order by decode(id,2,-1,id) desc;
decode 的用法变通的太妙了
一般用在union时。
比如
select col1,col2,col3 from a
union
select col4,col5,col6 from b
order by 1;
是按union之后的结果集的第一个字段来进行排序。
order by -1没见过。
另外你注意bobo的写法不是代表着order by 1 or order by -1。
你不能把值代入算出这个结论,那是一个整体。
既如果等于2,当作-1来参与排序,如果不等于2,则按原ID参与排序。