当前位置: 首页 > news >正文

Oracle按照某一字段值排序并显示,相同的显示序号

Oracle按照某一字段值排序并显示,相同的显示序号

最近的工作遇到对于相同的字段,按照序号去显示值,并对相同的值进行排序
实验了半天,感觉满意的答案,分享给大家

第一种: ROW_NUMBER

语法: ROW_NUMBER() OVER (ORDER BY your_column) AS sequence_number

说明: 根据your_column字段的值进行排序,并为每个唯一的your_column值分配一个序号。

示例:

SELECT  ROW_NUMBER() OVER (ORDER BY sub.C_IDEN_RELA) AS sequence_number,sub.* FROM Testtable sub WHERE 1=1 AND sub.C_IDEN_RELA IN ('5132242092203614208','5132412321219125248','5132392474594680832') ;

效果图:
在这里插入图片描述

优化改进(日常喜欢用的)

语法: ROW_NUMBER() OVER (PARTITION BY sub.C_IDEN_RELA ORDER BY sub.C_IDEN_RELA) AS sequence_number

说明: 根据your_column字段的值进行排序,并为每个唯一的your_column值分配一个序号。

  • ROW_NUMBER():为每一行分配一个连续的整数。
  • OVER (PARTITION BY sub.C_IDEN_RELA ORDER BY sub.C_IDEN_RELA)
    • 这部分定义了窗口框架。
    • 它指定了如何对数据进行分区和排序
  • PARTITION BY sub.C_IDEN_RELA
    • 这意味着函数将在 sub.C_IDEN_RELA 列的不同值之间重新开始计数。
    • 换句话说,对于 sub.C_IDEN_RELA 的每一个不同值,ROW_NUMBER() 都会从1开始重新编号。
  • ORDER BY sub.C_IDEN_RELA
    • 在每个分区内部,行将按照 sub.C_IDEN_RELA 的值进行排序
    • 如果 sub.C_IDEN_RELA 包含重复值,那么这些行将按照它们在表中的出现顺序进行编号

示例:

SELECT  ROW_NUMBER() OVER (PARTITION BY sub.C_IDEN_RELA ORDER BY sub.C_IDEN_RELA) AS sequence_number,sub.* FROM Testtable sub WHERE 1=1 AND sub.C_IDEN_RELA IN ('5132242092203614208','5132412321219125248','5132392474594680832') ;

效果图:
在这里插入图片描述

第二种: DENSE_RANK

语法: DENSE_RANK() OVER (ORDER BY your_column) AS sequence_number

说明: 对有相同your_column值的行进行分组,并且为每组分配一个序号

示例:

SELECT  DENSE_RANK() OVER (ORDER BY sub.C_IDEN_RELA) AS sequence_number,sub.* FROM Testtable sub WHERE 1=1 AND sub.C_IDEN_RELA IN ('5132242092203614208','5132412321219125248','5132392474594680832') ;

效果图:

在这里插入图片描述

第三种: ROW_NUMBER

语法: RANK() OVER (ORDER BY your_column) AS sequence_number

说明: 根据your_column字段的值进行排序,并为每个唯一的your_column值分配一个序号。

示例:

SELECT  RANK() OVER (ORDER BY sub.C_IDEN_RELA) AS sequence_number,sub.* FROM Testtable sub WHERE 1=1 AND sub.C_IDEN_RELA IN ('5132242092203614208','5132412321219125248','5132392474594680832') ;

效果图:

在这里插入图片描述

完结撒花

http://www.lryc.cn/news/439103.html

相关文章:

  • 【Java基础】String详解
  • cmd命令
  • 《中文Python穿云箭量化平台二次开发技术11》股票基本信息获取分析及应用示例【前十大股东占股比例提取及分析】
  • OSINT技术情报精选·2024年9月第1周
  • 51单片机应用开发---二进制、十六进制与单片机寄存器之间的关系(跑马灯、流水灯实例)
  • 信息安全工程师(6)网络信息安全现状与问题
  • 亚数TrustAsia亮相第十四届智慧城市与智能经济博览会,入围“2024数据要素创新应用优秀成果”!
  • Linux基础开发环境(git的使用)
  • VS Code终端命令执行后老是出现 __vsc_prompt_cmd_original: command not found
  • 春天(Spring Spring Boot)
  • Oracle EBS AP预付款行分配行剩余预付金额数据修复
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶
  • Java设计模式—面向对象设计原则(六) ----->合成复用原则(CRP) (完整详解,附有代码+案例)
  • java坏境搭建
  • C#中判断socket是否已断开的方法
  • Python编程 - 异常处理与文件读写
  • 【C++】c++ 11
  • uni-app 应用名称 跟随系统语言 改变
  • 【大模型实战篇】高质量数据过滤及一种BoostedBaggingFilter处理方法的介绍
  • 使用Python和Proxy302代理IP高效采集Bing图片
  • Python酷库之旅-第三方库Pandas(118)
  • 讨论人机交互研究中大语言模型的整合与伦理问题
  • OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用
  • GitLab CI_CD 从入门到实战笔记
  • 微服务实战系列之玩转Docker(十五)
  • 本地调试spark,访问kerberos鉴权的hdfs、hive
  • Ubuntu 安装包下载(以20版本 阿里镜像站为例子)
  • 会声会影Corel VideoStudio2025旗舰版最新中文旗舰版新功能讲解及使用会声会影使用教程
  • 【人工智能】OpenAI发布GPT-o1模型:推理能力的革命性突破,这将再次刷新编程领域的格局!
  • 2024年TCGA基因表达数据下载(最新版)