gpt4 book ai didi

SQL返回特定行的rownum? (使用 Oracle 数据库)

转载 作者:行者123 更新时间:2023-12-02 06:12:34 28 4
gpt4 key购买 nike

在 Oracle 10g 中,我有这个 SQL:

select dog.id as dogId from CANINES dog order by dog.codename asc

返回:

id
--
204
203
206
923

我想扩展此查询以确定此结果集中 dog.id 的 oracle rownum。

我试过了

select rownum from 
(select dog.id as dogId from CANINES dog order by dog.codename asc)
where dog.id=206

但这并不是很好(无论我匹配哪个 dog.id,它都会返回 1)。我期待着回来 3。

感谢您的帮助!


注释

http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html

我很确定我不需要使用 rowid

最佳答案

我怀疑您想要的是使用分析函数(RANK、DENSE_RANKROW_NUMBER),即

SELECT rnk
FROM (select dog.id as dogId,
ROW_NUMBER() OVER( ORDER BY dog.codename ASC ) rnk
from CANINES dog )
WHERE dogId = 206

如果 CANINES 表中的 ID 列不是唯一的,RANK、DENSE_RANKROW_NUMBER) 将以不同方式处理平局。

如果您只想使用 ROWNUM 来执行此操作,

SELECT rn
FROM (
SELECT dogId, rownum rn
FROM (select dog.id as dogId
from CANINES dog
order by dog.codename ASC) inner
) middle
WHERE dogId = 206

关于SQL返回特定行的rownum? (使用 Oracle 数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534217/

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