db2中没有 limit 0,20 这样的用法。但提供了 row_num()函数:
思路:
借助 row_num() 给我们的表 生成序号,再通过 where 对行号进行区间判断。
sql写法:
mysql分页写法:
select a.name, a.age ,b.id from user a left join work b on a.id=b.id limit 20,30
db2分页写法:
select * from ( select row_num() over() as rownum, a.name, a.age ,b.id from user a left join work b on a.id=b.id ) where rownum>20 and rownum<30
其中: over() 里可以写 按照某列进行排序, 里面是 order by 的写法
通过比较我们可以看出来:
总结,得出模板(蓝色字体 是模板,红色字体是要替换的sql)的写法: