oracle添加序号列3种方法大全

 更新时间:2024年03月15日 11:27:35   作者:小研说技术  
Oracle是众多的关系型数据库系统之一,它可以为表格中的每一行创建唯一的序号列,这篇文章主要给大家介绍了关于oracle添加序号列的3种方法大全,需要的朋友可以参考下

场景:oracle在展示数据时,用户需要看到当前记录数,添加序号即可,适用于表格导出。

方式一:添加xh字段

SELECT
	fxh,
	fmc,
	round( ( sum( fczsrbnljzxs ) - sum( fczsrsntqs ) ) / 10000, 2 ) AS 增减额
	,
	round( sum( fczsrbnljzxs ) / 10000, 2 ) AS 财政收入
	,
	round( sum( fczsrbsn ), 2 ) AS 增减幅度
	,
	f_sys_year 
FROM
	zhzs_bill_qqczsrfjwcqk 
WHERE
	f_sys_year = '2021' 
	AND f_sys_month = '12' 
GROUP BY
	fxh,
	fmc,
	f_sys_year 
ORDER BY
	to_number( fxh )

效果图:

SQL解读:此条在select后添加xh,group by后添加xh分组,以及用order by排序,to_number(xh)将其转为数值型即可

方式二:oracle自带

select ROWNUM as fxh,a.* from (
SELECT  fmc
	, round((sum(fczsrbnljzxs) - sum(fczsrsntqs)) / 10000, 2) AS 增减额
	, round(sum(fczsrbnljzxs) / 10000, 2) AS 财政收入
	, round(sum(fczsrbsn), 2) AS 增减幅度
	, f_sys_year
FROM zhzs_bill_qqczsrfjwcqk
WHERE f_sys_year = '2021'
	AND f_sys_month = '12'
GROUP BY fmc, f_sys_year ) a 

效果图

SQL解读:此方法使用自带的ROWNUM函数,简单方便,oracle独有

方式三:row_number()函数

SELECT  row_number() over(order by fmc) as xh,fmc
	, round((sum(fczsrbnljzxs) - sum(fczsrsntqs)) / 10000, 2) AS 增减额
	, round(sum(fczsrbnljzxs) / 10000, 2) AS 财政收入
	, round(sum(fczsrbsn), 2) AS 增减幅度
	, f_sys_year
FROM zhzs_bill_qqczsrfjwcqk
WHERE f_sys_year = '2021'
	AND f_sys_month = '12'
GROUP BY fmc, f_sys_year

效果图

SQL解读:此方法通用(mysql也可以使用)

附:Oracle使用row_number()函数查询时增加序号列

使用Oracle自带的row_number()函数能够实现自动增加序号列的要求,但是同时引发一个问题,如果我们查询出来的数据需要使用Order By排序的话,那么我们会发现新增加的序号列是乱序的,它会根据我们Order By后面的字段重新排序,那么怎么解决这一问题呢。

很简单,我们再加上根据Order By排序就可以了。

select row_number() over(ORDER BY t.taskcreatetime),
t.ACTIVITYNAME,
t.TASKTYPE 
from t_sys_flow_task t 
ORDER BY t.taskcreatetime;

查询结果如下:

总结

到此这篇关于oracle添加序号列3种方法的文章就介绍到这了,更多相关oracle添加序号列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle—SQL技巧之(一)连续记录查询sql案例测试

    oracle—SQL技巧之(一)连续记录查询sql案例测试

    有这样一个需求:需要查询出某个客户某一年那些天是有连续办理过业务,本文给予sql实现语句并测试,感兴趣的朋友可以了解下
    2013-01-01
  • Oracle通过procedure调用webservice接口的全过程

    Oracle通过procedure调用webservice接口的全过程

    存储过程是一组为了完成特定功能的sql语句集合,经过编译后存储在数据库中,用户通过制定存储过程的名字并给出参数(如果该过程带有参数)来执行他,本文介绍了Oracle通过procedure调用webservice接口的全过程,需要的朋友可以参考下
    2024-07-07
  • oracle表被锁定的完美解决方法

    oracle表被锁定的完美解决方法

    ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在小编给大家分享另外一种oracle表被锁定的解决方法,需要的的朋友参考下吧
    2017-07-07
  • SQL Server、Oracle和MySQL判断NULL的方法

    SQL Server、Oracle和MySQL判断NULL的方法

    本文讲述SQL Server、Oracle、MySQL查出值为NULL的替换,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办
    2012-11-11
  • oracle 创建字段自增长实现方式

    oracle 创建字段自增长实现方式

    这篇文章主要介绍了oracle 创建字段自增长实现方式的相关资料,需要的朋友可以参考下
    2016-10-10
  • oracle 库中有表 但是查询显示表不存在的问题

    oracle 库中有表 但是查询显示表不存在的问题

    这篇文章主要介绍了oracle 库中有表 但是查询显示表不存在,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Redhat6.5安装oracle11g的方法

    Redhat6.5安装oracle11g的方法

    这篇文章主要介绍了Redhat6.5安装oracle11g的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • WMware redhat 5 oracle 11g 安装方法

    WMware redhat 5 oracle 11g 安装方法

    本文将详细介绍WMware中redhat 5 安装oracle 11g方法,需要的朋友可以参考下
    2012-12-12
  • Oracle数据库更新大批量数据案例

    Oracle数据库更新大批量数据案例

    今天小编就为大家分享一篇关于Oracle数据库更新大批量数据案例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 详解ORACLE SEQUENCE用法

    详解ORACLE SEQUENCE用法

    Oracle中的sequence用法在oracle中sequence就是所谓的序列号,本文详细的介绍了ORACLE SEQUENCE用法,具有一定的参考价值,有兴趣的可以了解下。
    2016-12-12

最新评论