首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使没有rownum,rownum也不会返回任何内容

即使没有rownum,rownum也不会返回任何内容
EN

Stack Overflow用户
提问于 2019-07-17 18:08:31
回答 1查看 63关注 0票数 0

我在DB2中有一条select语句,它在执行时返回一条记录,但是,如果我添加一个像rownum >=1 and rownum <=2这样的限制,则不会返回任何记录。

Select语句:

当我尝试的时候:

代码语言:javascript
复制
SELECT person.ID, person.SEX, person.BYEAR, person.BMONTH,
        person.BDAY
        FROM MIGRATION.LEGALPERSON person
        JOIN MIGRATION.LEGALPARTNER part ON person.ID = part.ID 
        WHERE person.STATUS = 'ACTIVE'

返回一条记录。

并使用

代码语言:javascript
复制
SELECT person.ID, person.SEX, person.BYEAR, person.BMONTH,
            person.BDAY
            FROM MIGRATION.LEGALPERSON person
            JOIN MIGRATION.LEGALPARTNER part ON person.ID = part.ID 
            WHERE person.STATUS = 'ACTIVE' and person.ROWNUM >= 1 and person.ROWNUM <= 2

不返回任何记录。

可能的根本原因是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-07-17 18:11:02

你不能以这种方式使用rownum (参见文档,https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm):

条件测试ROWNUM值大于正整数始终为false

如果你想做这样的事情,考虑使用row_number分析函数,例如

代码语言:javascript
复制
with temp as
  (select some_column,
          row_number() over (order by date_value) rn
   from your_table
  )
select *
from temp
where rn between 4 and 13

ROWNUM本身开始:

代码语言:javascript
复制
with temp as
  (select some_column,
          rownum rn
   from your_table
   order by date_value
  )
select *
from temp
where rn between 4 and 13
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57073442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档