解决办法:在排序字段名前加上-,然后改为降序排序,这样子有数值的记录的排序还是跟原来一样(负负得正),并且这把***列值为NULL的记录都排在后面了
适用情况:oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面,
在order by 的时候,用Nvl、NVL2 、Decode、case .....when....end等函数对栏位的null值进行处理。
排序要看用什么字段排序,可以单个字段,也可以多个字段,这些与存在值是否为null无关。
如下列数据
id name class
1 a 1
2 b null
3 c null
现在要按id和class排序,其中id为主要排序字段,class为次要排序字段
可写如下语句
select * from 表名 order by id,class。
空列值,order by 语句是可以排序到最后的,你说的是null值吧。这个只能这样:select *,case when NAME is null or LEN(NAME)=0 ' ' else NAME end as NAME2 from TABLE order by NAME2 desc
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)