代码之家  ›  专栏  ›  技术社区  ›  Dostee

SQL CE:限制查询中返回的行数

  •  2
  • Dostee  · 技术社区  · 16 年前

    SQL Compact 3.5版 ,注意它是 小型版 我说的是-有没有办法把行数限制在2行?使用极限或顶。我 真的不想 将任何内容与sqlcedatareader或sqlceresultset一起使用。我想做所有的限制 在查询中 . 现在可以吗?我环顾四周,但似乎不是这样。

    编辑-

    为了响应Dave Swersky的数据请求,并在一些列上使用min()/max()作为获取前2行的方法,以下是一些样本(已消毒)数据:

    Line     Site          Function     Status
    1010     Las Vegas     new          4
    1020     DC            send         1
    1030     Portland      copy         1
    1040     SF            copy         1
    1050     Portland      copy         1
    1060     DC            send         1
    

    *有比这更多的列,但这些是重要的列。

    抱歉,缺少直观的数据(但实际数据更不直观!)但是为了安全起见,我需要更改数据。

    所以-我需要确定: 记录位于前一行中的哪个站点,以确定需要在哪里提取记录。

    这个 网站 在任何给定行上( 除了 第一行与 函数='新建' ) 对应于下一个项目的位置。 所以简单地从同一条线上抓取这个网站并不能告诉我它是从哪里来的。状态将始终为1或4。4对应于已经交付的位置,因此我不想在结果中包含这些记录。但它可能有助于获得取货地点。

    对于这个数据表,我希望查询返回与状态为1的第一行正上方的行对应的站点。所以-为了这个,那就是拉斯维加斯。

    4 回复  |  直到 16 年前
        1
  •  5
  •   user227997    16 年前
        2
  •  1
  •   Dave Swersky    16 年前

    这将取决于您的数据…如果您保证了连续的ID或日期,那么可以使用max with not in subquerys返回有限的行数。发布一些您的模式,我将尝试编一个例子。

        3
  •  1
  •   Joel Coehoorn    16 年前

    根据您需要做的,您可能能够使用DataReader执行完整的查询,并且只调用 .Read() 方法两次。

        4
  •  1
  •   Jim L    16 年前

    我从未在查询本身中找到答案。 这是用于移动应用程序还是用于桌面上的SQL CE?

    我没有一个直接的答案,但我会分享我在自己的项目中所观察到的… 我在桌面应用程序中使用SQL CE的经验是,在某些情况下,使用应用程序代码进行筛选的性能更高。因此,如果您发现自己在编写一个复杂的查询,您可能还需要考虑在data reader.read()循环中编写应用程序代码中的过滤器,并比较结果。我发现了这样的情况,切割操作需要几秒钟到几秒钟。

    我知道这不是您想要做的,但我发现SQL CE要求您优化的内容与在服务器上运行时略有不同。没有需要担心的网络延迟,所以一般的担心不会出现。