一、order by 1
其实1表示第一个栏位,2表示第二栏位; 依此类推,当表中只有2个栏位时,oder by 3就会出错,这个跟order by 列名没有什么区别,不过在特殊情况下还是很有用的.
select owner,table_name,tablespace_name,blocks,last_analyzed
from all_tables order by 1,2;
根据第一列和第二列排序
相当于
order by owner,table_name
二、ORDER BY 中关于NULL的处理
缺省处理,Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。
你也可以使用nulls first 或者nulls last 语法来控制NULL的位置。
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
select * from zl_cbqc order by cb_ld nulls first
select * from zl_cbqc order by cb_ld desc nulls last
三、多列排序
单列升序