问题描述
嗨,汤姆,
如何按字母顺序对数据进行排序并分配它们的等级
我有数据并分配排名 (排名必须按字母顺序分配),就像这样。
为此,我过去常常点菜,
所以,这应该像所有二级员工一样
o/p:
不可能在一个select语句中使用任何REG_EXP
谢谢,
卡纳卡
如何按字母顺序对数据进行排序并分配它们的等级
我有数据并分配排名 (排名必须按字母顺序分配),就像这样。
为此,我过去常常点菜,
A ADAMS-1 ALLEN-2 B BLAKE-1 C CLARK-1 F FORD-1 J JAMES-1 J JONES-2 K KING-1 M MARTIN-1 MILLER-2 S SCOTT-1 SMITH-2 T TUNNER-1 W WARD-1复制
所以,这应该像所有二级员工一样
o/p:
ALLEN-2 JONES-2 MILLER-2 SMITH-2复制
不可能在一个select语句中使用任何REG_EXP
谢谢,
卡纳卡
专家解答
所以你想用第一个字母来排名名字?并且只返回每个排名第二的行?
您可以使用row_number进行排名。分区by子句将行拆分为单独的排名组。因为这是第一个字母,所以只需substr名称即可获得此名称。
看起来像:
从这里开始,只需添加一个where子句来显示每个字母的第n个。
您可以使用row_number进行排名。分区by子句将行拆分为单独的排名组。因为这是第一个字母,所以只需substr名称即可获得此名称。
看起来像:
with rank_names_by_letter as ( select last_name, row_number () over ( partition by substr ( last_name, 1, 1 ) order by last_name ) rn from hr.employees where department_id = 50 ) select * from rank_names_by_letter order by last_name; LAST_NAME RN Atkinson 1 Bell 1 Bissot 2 Bull 3 Cabrio 1 Chung 2 Davies 1 Dellinger 2 Dilly 3 Everett 1 Feeney 1 Fleaur 2 Fripp 3 Gates 1 Gee 2 Geoni 3 Grant 4 ...复制
从这里开始,只需添加一个where子句来显示每个字母的第n个。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
596次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
567次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
485次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
473次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
457次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
432次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
432次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
417次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
362次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
358次阅读
2025-04-15 14:48:05