How to select top multiple of 10 entries?
I have a data in SQL table that is meaningful if only seen as bunch of 10 entries. I want to write a query that does this for ex. Select top 10*n from table where condition.
If for ex. 53 entries satisfy condition, I want only 50 to be seen and last 3 to be discarded.
Plz help. Kbv
答案 0 :(得分:0)
How about:
declare @rows int;
set @rows = ((select count(*) from table where condition)/10)*10
select top @rows * from table where condition
答案 1 :(得分:0)
Try this:
with CTE AS (
SELECT * FROM Table WHERE Condition
)
Select top(((SELECT COUNT(*) FROM CTE)/10)*10) * From CTE
答案 2 :(得分:0)
请考虑以下内容......
SELECT orderField,
field1,
...
FROM tblTable
WHERE condition
ORDER BY orderField
LIMIT 10 * numberOfGroups;
构建查询时,首先要确定所需的字段。在一个简单的表查询中,您可以相当安全地使用SELECT *
,但如果您指的是JOIN
数据集,则应考虑指定要使用的字段并为这些字段指定别名。
确保无论您orderField
或orderFields
被调用,它们都会被*
等通配符覆盖,或者明确指定。
上述代码首先选择符合您criteria
的所有记录。然后,它会根据您为ORDER BY
指定的字段对结果列表进行排序。注意:以上假设您要根据表中的现有值进行排序。如果需要根据计算值进行排序,则可能需要添加另一个(次要)复杂度级别。
LIMIT
将从排序列表中获取第一个指定数量的记录。 LIMIT
仅接受计算值,例如2 * 2
或10 * numberOfGroups
,其中numberOfGroups
是先前在代码中设置的变量或显式替换numberOfGroups
的值(即10 * @numberOfGroups
其中@numberOfGroups
之前已设置为5
或10 * 5
。{/ p>
如果您有任何问题或意见,请随时发表评论。