示例场景:
数据库中有优惠券表t_coupon,字段id, code, user_name, get_date, start_date, end_date分别表示ID, 优惠券编码, 用户名, 优惠券获得日期, 优惠券生效日期, 优惠券过期日期。
表的结构:t_coupon ( id, code, user_name, get_date, start_date, end_date)
现在需要分页查询用户名为 ego_ecust 的用户的优惠券信息,每页5条记录,按优惠券生效日期升序排序。
各数据库查询第1-5条数据的SQL如下。
MySQL:
SELECT * FROM t_coupon c
WHERE c.user_name = 'ego_ecust'
ORDER BY c.start_date
OFFSET 0 LIMIT 5;
SQLServer:
Oracle:
SELECT * FROM (
SELECT p.*, ROWNUM AS rn FROM (
SELECT c.* FROM t_coupon c
WHERE c.user_name = 'ego_ecust'
ORDER BY c.start_date) p
WHERE ROWNUM <= 5) r
WHERE r.rn >= 1;
参考资料:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html