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

SQL CE:限制查询中返回的行,sql,sql-server,compact-framework,sql-server-ce,Sql,Sql Server,Compact Framework,Sql Server Ce,在SQL Compact Edition 3.5中,请注意,我所说的是Compact Edition——是否有办法将行数限制为仅2行?比如使用LIMIT或TOP。我真的不想将任何东西与SqlCEDataReader或SqlCEResultSet一起使用。我想做查询中的所有限制。现在可能吗?我环顾四周,似乎不是这样 编辑- 为了响应Dave Swersky的数据请求,并在某些列上使用Min()/Max()作为获取前两行的方法,以下是一些示例(已消毒)数据: *有比这更多的列,但这些是重要的 很抱歉

SQL Compact Edition 3.5中,请注意,我所说的是Compact Edition——是否有办法将行数限制为仅2行?比如使用LIMIT或TOP。我真的不想将任何东西与SqlCEDataReader或SqlCEResultSet一起使用。我想做查询中的所有限制。现在可能吗?我环顾四周,似乎不是这样

编辑-

为了响应Dave Swersky的数据请求,并在某些列上使用Min()/Max()作为获取前两行的方法,以下是一些示例(已消毒)数据:

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

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

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

任何给定行上的站点除了第一行的函数='new'对应于项目的下一步走向。因此,简单地从同一行抓取该站点不会告诉我它来自何处。状态将始终为1或4。4对应于已经交付的,所以我不想在结果中包含这些记录。但这可能有助于获得接送地点


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

这将取决于您的数据。。。如果您保证了顺序ID或日期,则可以使用MAX with NOT IN子查询返回有限数量的行。发布一些您的模式,我将尝试编写一个示例。

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

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

我真的没有一个直接的答案给你,但将分享我在我自己的项目中观察到的。。。 我在桌面应用程序中使用SQL CE的经验是,在某些情况下,使用应用程序代码进行过滤更有效。因此,如果您发现自己正在编写一个复杂的查询,那么您可能还需要在data reader.Read()循环内的应用程序代码中编写过滤器,并比较结果。我发现过这样的情况,这种切割操作需要几秒钟的时间才能完成


我知道这不是您想要做的,但我发现SQL CE要求您优化一些东西,这与在服务器上运行时略有不同。无需担心网络延迟,因此正常类型的担心不会表现出来。

Sql CE 3.5支持顶级表达式:

@Dave Swersky-我倾向于这样-我马上发布一些表格数据-为什么你不喜欢使用结果集,只选择前两行?@ctacke-原因有点复杂,但简而言之,这只是一个项目的行程,还有比这多得多的项目,所有响应当前需要提取项目的站点都使用此查询读取。我正试图找到一种方法来限制其发现的需要获取某些信息的有效站点的数量。@Jim Leonardo-这是一款移动应用程序-我将更深入地研究更改代码以使用数据读取器之类的东西的逻辑。这只是,至少在一开始,听起来像是从我现在的位置倒退了一步。但是谢谢你的建议。@Jim Leonardo-是的,所有限制结果数量的适配器选项实际上都不是一个选项,在这个非常具体的例子中。主要的是,限制行是我想在子查询中做的事情,而外部查询仍然需要能够处理动态范围的结果。但再次感谢你anyways@raymond-哇,我感到很惊讶!我也觉得自己像个白痴-哈哈。我发誓我在互联网上看了几个小时,甚至有很多地方专门说这个功能不存在,最好的办法是其他一些欺骗手段!我想知道这是什么时候推出的?不管怎样,非常感谢-真的帮了我的忙。干杯。嗨,是的,这是3.5中引入的最棒的功能之一:)我很高兴我发布了它,几乎没有因为它已经从这里的一些大权威那里得到了一些答案。
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