您好,
我有如上所示的“Table1”,上面有一些记录,列名是Id,Name和[Entry Date]。列Id是主键,我使用的是SQL Server 2005。
我想编写一个每5条记录返回一次信息的查询,例如我的查询将返回:
正如您在最终结果中所看到的那样,只选择了每5条记录的记录,我该如何做到这一点?
谢谢
答案 0 :(得分:16)
SELECT id, name, entryDate
FROM (SELECT ROW_NUMBER() OVER(ORDER BY id) rowNumber, Id, name, entryDate
FROM MyTable)
WHERE rowNumber = 1
OR rowNumber % 5 = 0
答案 1 :(得分:0)
select * from mytable
where id = 1 or id % 5 = 0
答案 2 :(得分:0)
假设ID是顺序且唯一的(它们看起来像是),只需为每条记录索引+ = 5。一些伪代码:
$index = 0;
while ( $index <= $totalRecords ) {
$result = "select * from records where id='$index'";
/*process results*/
$index += 5; /*increment index for next query*/
}
请注意,对于记录ID = 1,将是一个特殊情况,因为您的ID从1开始,而不是0。
希望这会给你一个想法。