我在DB2中有一条select语句,它在执行时返回一条记录,但是,如果我添加一个像rownum >=1 and rownum <=2这样的限制,则不会返回任何记录。
Select语句:
当我尝试的时候:
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'返回一条记录。
并使用
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不返回任何记录。
可能的根本原因是什么?
发布于 2019-07-17 18:11:02
你不能以这种方式使用rownum (参见文档,https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm):
条件测试ROWNUM值大于正整数始终为false
如果你想做这样的事情,考虑使用row_number分析函数,例如
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本身开始:
with temp as
(select some_column,
rownum rn
from your_table
order by date_value
)
select *
from temp
where rn between 4 and 13https://stackoverflow.com/questions/57073442
复制相似问题