当前位置: 首页 > 面试题库 >

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

仲孙飞文
2023-03-14
问题内容

在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


问题答案:

我怀疑您要使用的是解析函数(RANKDENSE_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_RANK,和ROW_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


 类似资料:
  • 我想找到一种使用GoogleAPI根据我提供的标准检索特定数据行的方法。我在想“getByDataFilter”可能会这样做吗? 我正在写一个个人使用的应用程序。我想使用谷歌工作表作为我的后端,这样我就可以从它邮件合并。在这个阶段,我使用API资源管理器来查看我可以获得哪些数据。我已经想出了如何从一系列细胞中获取数据 我尝试过使用getByDataFilter,但似乎无法返回任何筛选值。 我有以下

  • 问题内容: 我正在尝试从SQL查询(oracle 11)的文本框中返回文本的第一行。文本框的内容如下所示: 我想返回第一行,即X WITHDRAWN。我不确定是否可以指定仅查看第一行,还是只返回回车之前的所有文本-两种方法都可以。 我想我需要使用regexp_substr,但是我不太确定语法。我试过了: 但它不起作用,因此不胜感激! 编辑:使用的解决方案: 编辑:我注意到我得到答案中返回的换行符和

  • 问题内容: 这是我的数据: SQL字段: http **://sqlfiddle.com/#!2/dfe09/1** 对于每个组,我想将返回的item_ID的数量限制为最多2个。我不在乎返回哪个2个。如果该组少于2行,则仅返回1行。 我无法为每个组写一个select top * 2并合并选择,因为我有几百个组。 我不确定从哪里开始,非常感谢您的帮助。 使用MS SQL 2005 (表布局与示例中的

  • 问题内容: 在Oracle PL / SQL中,我习惯于写: 为了仅获取名为MY_TABLE的表的前100条记录。 SQL SERVER中的等效SELECT语句可能是什么? 问题答案: 您还可以使用where类过滤行

  • 我的 sql 查询为给定员工返回特定周的正确结果 例如,我的员工列表是(员工1,员工2,员工3,员工4) 如果emp4在该周内未完成任何工作,则该员工的行根本不会返回。 我的疑问如下: 如果该周的员工记录仍然不存在,则员工姓名应显示为0

  • 我想知道是否可以使用我的数据库中的数据将JTable中的一些行灰化或呈现为不可见? 以下是我的JTable中的列: 显示“我的表格”时,我希望行带有d1。getDutyStatus(),其中dutyStatus=“Inactive”将灰显。我的表格当前可以更新为“活动”(按更新按钮)或“非活动”(按删除按钮)。我不希望用户能够编辑dutyStatus为“Inactive”的任何职责。非常感谢您的任