我在DB2中知道(使用版本9.7)我可以使用此查询选择表的前10行:
SELECT *
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY
但是我怎样才能获得11到20行呢? 我无法使用主键或ID来帮助我...
提前致谢!
答案 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