OracleDB通用分页

时间:2017-01-11 09:44:20

标签: sql oracle11g

当我不知道表的确切设置时,如何在OracleDB表上实现分页?

我目前正在为几个不同的远程数据源(如MS-Exchange,GroupWise,各种目录服务等)以及不同的SQL数据库开发一个地址簿连接器。其中,OracleDB。

用户可以指定远程数据库,表名以及列名,例如 first_name last_name company_etc 等 但他可以自由地将任何列留空,因此我不能依赖实际设置的单个列。

因此,默认Oracle分页查询的 ORDER BY 部分必须以与MSSQL查询( ORDER BY SELECT(NULL))类似的方式实现。< / p>

我不需要严格的分拣可靠性

的PostgreSQL:

SELECT *
FROM table_name
OFFSET ? LIMIT ?

MySQL的:

SELECT *
FROM table_name
LIMIT ?,?

MSSQL:

WITH select_result AS
(
  SELECT *,
  Row_number() OVER (ORDER BY SELECT(NULL))
  AS RowNum FROM table_name
)
SELECT * FROM select_result
WHERE RowNum BETWEEN ? AND ?

OracleDB的:

???

0 个答案:

没有答案