Select Informix 中的每第 n 行?

Select every n-th row in Informix?

我想知道是否可以像在 MS 中一样 select Informix 中的每第 n 行 SQL?!

类似

SELECT * FROM <TABLE> order by <COLUMN> ASC limit 1 OFFSET 4

就是没用。我们必须使用驱动程序版本 4.10.FC9DE。

我的目标是仅从 table 的大约 350 个条目中返回每第 5 行。我很高兴获得实现这一目标的每一个提示。

我每隔 5 行就 select 提出这个解决方案:

首先我从 1 开始对所有行进行编号,然后 select MOD 5 为 0 的每一行

SELECT t.*
  FROM (SELECT *, SUM(1) OVER (ORDER BY <COLUMN>) AS num
          FROM <TABLE> ) AS t
 WHERE MOD(t.num, 5) = 0

当然,这不是最有效的方法

select  skip 4  first 1 *
from <table>
order by <column> asc

您可以在以下位置查看更多信息:

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_14.1.0/com.ibm.sqls.doc/ids_sqs_0987.htm

Select 每 5 行 1 个:

SELECT * FROM <TABLE> WHERE mod(rowid, 5) = 0;

Select 每 10 行 1 个:

SELECT * FROM <TABLE> WHERE mod(rowid, 10) = 0;