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;
我想知道是否可以像在 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;