2009-12-17 103 views
2

SQL精简版3.5,请注意,这是精简版我说关于我们 - 有没有办法来行的数量限制为仅2?就像使用LIMIT或TOP一样。我真的不希望使用SqlCEDataReader或SqlCEResultSet任何东西。我想在查询中执行所有限制。现在可能吗?我环顾四周,看起来并不如此。SQL CE:限制行的查询返回

编辑 -

响应于戴夫Swersky的请求的数据和一些列作为得到的顶部2线的装置使用MIN()/ MAX(),这里是一些样品(灭菌)数据:

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的第一行上方的行的网站。因此 - 这是拉斯维加斯。

+0

你为什么不愿意使用ResultSet,只是走前两排? – ctacke 2009-12-17 20:12:47

+0

@ctacke - 原因有点复杂,但简而言之,这只是一个项目的行程,还有更多的项目比这个更多的项目和所有的网站,coorespond到一个项目目前需要拾取的地方读入使用这个查询。我试图找到一种方法来限制它发现的网站数量,作为需要提取的有效网站。 – Dostee 2009-12-17 20:38:46

回答

5
+0

@ raymond-holmboe - 哇,我感到惊讶!我也觉得自己像一个白痴,哈哈。我发誓我在网上看了几个小时,甚至有很多地方特别说明这个功能并不存在,最好的方法是其他一些欺骗手段!我想知道这是什么时候推出的?那么,非常感谢,真的帮助我。干杯。 – Dostee 2009-12-18 16:21:27

+1

嗨,是的,这是3.5中介绍的最好的功能之一:)我很高兴我发布了它,几乎没有导致它已经有一些来自这里的一些大政府的答案。 – user227997 2009-12-21 09:25:35

1

这将取决于您的数据...如果您有保证序列ID或日期,您可以使用MAX和NOT IN子查询返回有限数量的行。发布一些你的模式,我会尝试做一个例子。

+0

@Dave Swersky - 这就是我倾向于 - 我会立即张贴一些表格数据 – Dostee 2009-12-17 20:09:18

+0

@Dave Swersky - 数据已上! – Dostee 2009-12-17 20:29:22

1

根据您需要做的事情,您可能可以使用DataReader执行完整查询,并且只能将其称为.Read()方法两次。

1

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

我真的没有直接的答案给你,但会分享我在我自己的项目中观察到的结果... 我在桌面应用程序中使用SQL CE的经验是,有些情况下它的性能更高使用您的应用程序代码进行过滤。所以,如果你发现自己写了一个复杂的查询,你可能也想看看在你的应用程序代码中的数据读取器中写入过滤器。读取()循环并比较结果。我发现这种削减操作的情况下需要几秒钟时间才能达到亚秒。

我知道这不是你想做的事情,但我发现SQL CE要求你在对服务器运行时有点不同。没有网络延迟可以担心,所以正常的担心不会显现出来。

+0

@Jim Leonardo - 这是一个移动应用程序,我将更多地关注更改我的代码以使用类似数据读取器的内容。它至少起初,听起来像是从我目前所在的地方向后退了一步。但谢谢你的建议。 – Dostee 2009-12-17 20:28:13

+0

@Jim Leonardo - 是的,在这个非常特殊的情况下,所有限制结果数量的适配器选项都不是真正的选择。最主要的是限制行是我想在子查询中做的事情,而外部查询仍然需要能够处理动态范围的结果。但是,再次感谢 – Dostee 2009-12-17 22:22:52