文章摘要
本文介绍了在ORACLE数据库中通过排序后获取第一条数据的方法。文章主要讲解了以下内容:
1. 使用`NEXT row_num`函数获取排序后的第一条数据。例如:
```sql
SELECT NEXT_FOLLOWUP_DATE
FROM PH_CHILD_HEALTH_EXAM
WHERE person_info_id='3afc119ab460497d85f59b1e135ea6b1'
ORDER BY followup_Visit_Date DESC;
```
2. 使用`ROW_NUMBER()`函数结合`PARTITION BY`和`ORDER BY`进行分组排序,并在每个分组中获取第一条数据。例如:
```sql
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn,
*
FROM test1
)
WHERE rn=1;
```
文章通过这些方法展示了如何在ORACLE中高效地根据需求进行数据排序和提取第一条记录。
目录oracle排序后如何获取第一条数据场景实现oracle分组后获取每组数据第一条数据总结
想要获取下列sql的数据的第一条
select NEXT_FOLLOWUP_DATE
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
order by followup_Visit_Date desc
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
order by followup_Visit_Date desc

select NEXT_FOLLOWUP_DATE
from (select NEXT_FOLLOWUP_DATE
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
and is_Cancel=0
order by followup_Visit_Date desc)
where rownum=1;
from (select NEXT_FOLLOWUP_DATE
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
and is_Cancel=0
order by followup_Visit_Date desc)
where rownum=1;

[sql]
SELECT * ? ?
? ?FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, ? ?
? ? ? ? ?test1.* ? ?
? ? ? ? ?FROM test1) ? ?
? WHERE rn=1 ?;
SELECT * ? ?
? ?FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, ? ?
? ? ? ? ?test1.* ? ?
? ? ? ? ?FROM test1) ? ?
? WHERE rn=1 ?;
此sql代表按照字段x进行分组,按照字段y倒序排序,取每个分组中的第一条数据。
其中 partition by 是指的是要进行分组的字段。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:oracle数据排序后获取前几行数据的写法(rownum、fetch方式)Oracle数据库中对null值的排序及mull与空字符串的区别Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
© 版权声明
文章版权归作者所有,未经允许请勿转载。