oracle排序时指定某些值在最前或最后以及针对null值的处理

本文介绍Oracle数据库中处理NULL值排序的方法,包括使用NULLS FIRST/LAST语法及通过NVL、NVL2等函数处理NULL值。此外还探讨了利用DECODE等函数实现特定值的排序调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适用情况: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值进行处理
 
以下是网上搜到的2个思路,大体试了一下好像没有达到效果,日后再做研究:
比如有个字段(ID)值为 1,2,3,4,5,现在要把这个字段第四个‘4’排到最后于是乎我可以

select * from test_table
order by decode(id,4,100,id)
或者
select * from test_table
order by replace(id,4,100)
当然不止这两种了,语句中的‘100’保证是你这些值中最大或最小值就行,排序根据需要升序降序(desc),我的语句是属于oracle的,其他数据看数据库找函数,意思就那么样了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值