【问题标题】:Select every n-th row in Informix?在 Informix 中选择每第 n 行?
【发布时间】:2020-02-04 07:48:10
【问题描述】:

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

类似

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

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

我的目标是只从包含大约 350 个条目的表中取回每 5 行。对于实现这一目标的每一个提示,我都很高兴。

【问题讨论】:

    标签: informix


    【解决方案1】:

    我建议这个解决方案每隔 5 行选择一次:

    首先我将所有行从 1 开始编号,然后选择 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
    

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

    【讨论】:

      【解决方案2】:
      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

      【讨论】:

        【解决方案3】:

        每 5 行选择 1 个:

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

        每 10 行选择 1 个:

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

        【讨论】:

          猜你喜欢
          • 2022-12-12
          • 1970-01-01
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多