在DB2中获取行

时间:2013-07-25 15:10:47

标签: db2 fetch

我在DB2中知道(使用版本9.7)我可以使用此查询选择表的前10行:

SELECT * 
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY

但是我怎样才能获得11到20行呢? 我无法使用主键或ID来帮助我...

提前致谢!

2 个答案:

答案 0 :(得分:14)

这是一个示例查询,它将从表中获取包含州名,缩写等的行

SELECT *
FROM (
   SELECT stabr, stname, ROW_NUMBER() OVER(ORDER BY stname) AS rownumber
   FROM states
   WHERE stcnab = 'US'
) AS xxx
WHERE rownumber BETWEEN 11 AND 20 ORDER BY stname
  

编辑:ORDER BY是必要的,以保证行编号一致   在执行查询之间。

答案 1 :(得分:1)

您还可以使用MYSQL兼容性。您只需激活MYS的矢量兼容性,然后在查询中使用限制和偏移。

db2set DB2_COMPATIBILITY_VECTOR=MYS
db2stop
db2start