2

informix 是否具有类似于 SQLServer 和 Oracle 的功能row_number()?我必须使用row_number() between两个值进行查询,但我不知道如何。

这是我在 SQLServer 中的查询:

SELECT col1, col2 
FROM (SELECT col1, col2, ROW_NUMBER() 
OVER (ORDER BY col1) AS ROWNUM FROM table) AS TB 
WHERE TB.ROWNUM BETWEEN value1 AND value2

一些帮助?

4

1 回答 1

2

如果看起来,您正在寻求获取第一行 1-100,然后是行 101-200,依此类推,那么您可以使用更直接(但非标准)的语法。其他 DBMS 有类似的符号,处理方式略有不同。

要获取第 101-200 行:

SELECT SKIP 100 FIRST 100 t.*
  FROM Table AS T
 WHERE ...other criteria...

您可以使用主变量代替文字 100(或在不同迭代中为占位符使用不同值的单个准备好的语句)。

于 2011-09-14T19:01:31.887 回答