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

打印 上一主题 下一主题

主题 868|帖子 868|积分 2604

场景:oracle在展示数据时,用户需要看到当前记录数,添加序号即可,适用于表格导出。
方式一:添加xh字段
  1. SELECT
  2.         fxh,
  3.         fmc,
  4.         round( ( sum( fczsrbnljzxs ) - sum( fczsrsntqs ) ) / 10000, 2 ) AS 增减额
  5.         ,
  6.         round( sum( fczsrbnljzxs ) / 10000, 2 ) AS 财政收入
  7.         ,
  8.         round( sum( fczsrbsn ), 2 ) AS 增减幅度
  9.         ,
  10.         f_sys_year
  11. FROM
  12.         zhzs_bill_qqczsrfjwcqk
  13. WHERE
  14.         f_sys_year = '2021'
  15.         AND f_sys_month = '12'
  16. GROUP BY
  17.         fxh,
  18.         fmc,
  19.         f_sys_year
  20. ORDER BY
  21.         to_number( fxh )
复制代码
SQL解读:此条在select后添加xh,group by后添加xh分组,以及用order by排序,to_number(xh)将其转为数值型即可
方式二:oracle自带
  1. select ROWNUM as fxh,a.* from (
  2. SELECT  fmc
  3.         , round((sum(fczsrbnljzxs) - sum(fczsrsntqs)) / 10000, 2) AS 增减额
  4.         , round(sum(fczsrbnljzxs) / 10000, 2) AS 财政收入
  5.         , round(sum(fczsrbsn), 2) AS 增减幅度
  6.         , f_sys_year
  7. FROM zhzs_bill_qqczsrfjwcqk
  8. WHERE f_sys_year = '2021'
  9.         AND f_sys_month = '12'
  10. GROUP BY fmc, f_sys_year ) a
复制代码
SQL解读:此方法使用自带的ROWNUM函数,简单方便,oracle独有
方式三:row_number()函数
  1. SELECT  row_number() over(order by fmc) as xh,fmc
  2.         , round((sum(fczsrbnljzxs) - sum(fczsrsntqs)) / 10000, 2) AS 增减额
  3.         , round(sum(fczsrbnljzxs) / 10000, 2) AS 财政收入
  4.         , round(sum(fczsrbsn), 2) AS 增减幅度
  5.         , f_sys_year
  6. FROM zhzs_bill_qqczsrfjwcqk
  7. WHERE f_sys_year = '2021'
  8.         AND f_sys_month = '12'
  9. GROUP BY fmc, f_sys_year
复制代码
SQL解读:此方法通用(mysql也可以使用)
本人正在打造技术交换群,欢迎志同道合的朋侪一起探究,一起努力,通过本身的努力,在技术岗位这条道路上走的更远。QQ群号:914683950 备注:技术交换 即可通过!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表