1、使用 order by record_time desc 实现降序时, record_time 为 null 数据的会排在数据的最后面;
但是, order by record_time 升序时, record_time 为 null 的数据则会排在最前面,如果想要将 record_time
为 null 的数据排在最后,就需要加上 is null 。
因为你的s_score是
varchar的,排序是按varchar的顺序排
如
100
和
2
100的第一位是1
比
2
小,所以在2前面,你可以在order
by里转换成number进行排序
适用情况:oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面关键字:Nulls First;Nulls Last默认情况:null 默认为最大值(即:asc 升序<小-->大>,null值排在最后;desc 降序<大-->小>,null值排在最前面)指定:1.Oracle Order by支持的语法2.指定Nulls first 则表示null值的记录将排在最前(不管是asc 还是desc)3.指定Nulls last 则表示null值的记录将排在最后(不管是asc 还是desc)语法举例:(Table:Tab_A 有部分空值的栏位Col_A)select * from Tab_A order by Tab_A. Col_A (asc/desc) nulls first------>null 值排在最前面select * from Tab_A order by Tab_A. Col_A (asc/desc) nulls last ------>null 值排在最后面其他方法:在order by 的时候,用Nvl、NVL2 、Decode、case .....when....end等函数对栏位的null值进行处理欢迎分享,转载请注明来源:内存溢出
评论列表(0条)