gpt4 book ai didi

sql - 如何从 Oracle 中的选定行中获取行号

转载 作者:行者123 更新时间:2023-12-04 01:17:08 27 4
gpt4 key购买 nike

我从数据库中选择几行,例如:

select * from student where name is like %ram%

结果:
ID   Name     email          Branch
7 rama rama@gmail.com B1
5 ramb ramb@gmail.com B2
3 ramc ramc@gmail.com B3
8 ramd ramd@gmail.com B4
11 rame rame@gmail.com B5
12 ramf ramf@gmail.com B6
14 ramg ramg@gmail.com B7

我需要获取分支为 B5 的行号。预期值为“5”

有人可以建议如何在查询中实现这一点吗?

最佳答案

表没有固有的顺序。因此,行号本身是一个毫无意义的指标。

但是,您可以使用 ROWNUM 获取结果集的行号。伪列或 ROW_NUMBER() 解析功能,功能更强大。

由于没有对表进行排序,因此两者都需要显式 ORDER BY 子句才能工作。

select rownum, a.*
from ( select *
from student
where name like '%ram%'
order by branch
) a

或使用分析查询
select row_number() over ( order by branch ) as rnum, a.*
from student
where name like '%ram%'

您的语法 where name is like ...不正确,不需要IS,所以我已经删除了它。

这里的 ORDER BY 依赖于二进制排序,因此如果分支以 B 以外的任何内容开头,结果可能会有所不同,例如 b大于 B .

关于sql - 如何从 Oracle 中的选定行中获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com