分页支持在 DB2 中可用 z/OS 但在 DB2/400 中不可用?

Pagination support available in DB2 for z/OS but not in DB2/400?

我知道 LIMIT 和 OFFSET,它们在两个 DB2 中都可用,但根据我的要求,我需要使用 WHERE。

DB2/ZOS12个支持...

WHERE (WORKDEPT, EDLEVEL, JOB) > ('E11', 12, 'CLERK')

但显然不是 DB2/400?

请有人告诉我我错了。

参考资料

DB2/ZOS https://www.ibm.com/support/knowledgecenter/en/SSEPEK_12.0.0/wnew/src/tpc/db2z_12_sqlpagination.html

DB2/400 https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/sqlp/rbafymultiplewhere.htm

DB2 有 3 个完全不同的平台

  • Db2 z/OS
  • IBM i 的 Db2
  • DB2 for Lunix,Unix,Windows (LUW)

尽管共享 DB2 名称,但它们是完全独立的产品,具有不同的代码库。

IBM 确实尝试确保兼容性,但这并不意味着每个平台都具有相同的功能或同时获得新功能。

所以不,Db2 for i 当前不支持 WHERE 中的非相等行值表达式。你必须去老学校。

WHERE 
  (WORKDEPT = 'E11' and EDLEVEL = 12 and JOB > 'CLERK)
  or (WORKDEPT = 'E11' and EDLEVEL > 12) 
  or (WORKDEPT > 'E11')