Sql server 如何获得动态顶部行数?
我想得到一个表的顶部行数-行数/10-1。如果有63行,它将返回3行,90行将返回10行,85行将返回5行,以此类推。。当然,这可以在两个查询中完成,只是想知道是否可以在一个查询中完成Sql server 如何获得动态顶部行数?,sql-server,linq-to-sql,Sql Server,Linq To Sql,我想得到一个表的顶部行数-行数/10-1。如果有63行,它将返回3行,90行将返回10行,85行将返回5行,以此类推。。当然,这可以在两个查询中完成,只是想知道是否可以在一个查询中完成 如果你们知道一个直接的sql查询,那就太好了,但理想情况下我想要一个linq到sql的答案。我不知道你的公式是如何映射到示例的。90-int90/10-1是82。但基本概念是: 从foo limit select count-select count/10-1中选择*选项 只希望您有一个像样的查询优化器 SELE
如果你们知道一个直接的sql查询,那就太好了,但理想情况下我想要一个linq到sql的答案。我不知道你的公式是如何映射到示例的。90-int90/10-1是82。但基本概念是: 从foo limit select count-select count/10-1中选择*选项 只希望您有一个像样的查询优化器
SELECT TOP 10 PERCENT * FROM Table
或
或
我在Linq to Sql方面很弱,但我不认为你不能避免2次查找,因为你仍然需要子查询来获得计数*,生成的Sql仍然会有子查询,这篇类似文章似乎验证了这一点是的,但他也说LinqToSql,他指的是TSQL。我甚至不知道你能做到。看起来我无法避免两次查找。谢谢
DECLARE @pct AS INT
SELECT @pct = (COUNT(*) / 10 )-1 FROM Table
SELECT TOP (@pct) * FROM Table
DECLARE @pct AS INT
SELECT @pct = (COUNT(*) / 10 )-1 FROM Table
SET ROWCOUNT @pct
SELECT * FROM Table