如何选择10个条目的最大倍数?如何选择10个条目的最大倍数?
我有一个SQL表中的数据是有意义的,如果只看到一堆10条目。我想写一个这样做的查询。从表中选择前10 * n条件。
如果对于前。 53个条目满足条件,我只想看到50个,最后3个被丢弃。
Plz help。 KBV
如何选择10个条目的最大倍数?如何选择10个条目的最大倍数?
我有一个SQL表中的数据是有意义的,如果只看到一堆10条目。我想写一个这样做的查询。从表中选择前10 * n条件。
如果对于前。 53个条目满足条件,我只想看到50个,最后3个被丢弃。
Plz help。 KBV
如何:
declare @rows int;
set @rows = ((select count(*) from table where condition)/10)*10
select top @rows * from table where condition
你好Psidom,SQL在最后一行整齐的@rows中显示错误。它说这个整数,或者真正的预期。任何事情都可以做到这一点? –
好的队友,解决了它。只需在最后一行放置一个托架,就像一个魅力一样。非常感谢。 –
试试这个:
with CTE AS (
SELECT * FROM Table WHERE Condition
)
Select top(((SELECT COUNT(*) FROM CTE)/10)*10) * From CTE
请考虑以下...
SELECT orderField,
field1,
...
FROM tblTable
WHERE condition
ORDER BY orderField
LIMIT 10 * numberOfGroups;
当构建您的查询首先决定你想要哪些字段。在一个简单的表格查询中,您可以相当安全地使用SELECT *
,但是如果您指的是数据集,那么您应该考虑指定要使用哪些字段并将别名分配给这些字段。
确保无论您的orderField
或orderFields
被调用,它们都会被通配符覆盖,如*
或被明确指定。
上面的代码首先选择符合您的criteria
的所有记录。然后根据您为ORDER BY
指定的字段或字段对结果列表进行排序。注意:以上假设您基于表中的现有值进行排序。如果您需要根据计算值进行排序,则可能需要添加另一个(次要)复杂度级别。
LIMIT
将从排序列表中获取第一个指定数量的记录。 LIMIT
接受简单地计算出的值,如2 * 2
或10 * numberOfGroups
,其中numberOfGroups
是可变的代码或明确地替换numberOfGroups
的值预先设定的(即10 * @numberOfGroups
其中@numberOfGroups
先前已经设置为5
或10 * 5
)。
如果您有任何问题或意见,请随时发布相应评论。
为了提高您的问题的质量,请显示您已完成的研究的证据,以及这些研究如何提供帮助以及未提供的帮助。请在问题中显示带有示例数据的示例表格(不作为链接文件)。请显示您尝试过的代码格式为代码示例(突出显示代码并单击文本输入区域上方的“{}”按钮)。请显示您遇到困难的任何错误消息。请在问题中以文字形式显示您的期望输出。请阅读http://stackoverflow.com/help/how-to-ask了解更多信息。 – toonice