SQL Server,每隔'x'条记录选择一条记录

时间:2012-01-29 17:11:29

标签: sql sql-server sql-server-2008 sql-server-2005

enter image description here

您好,

我有如上所示的“Table1”,上面有一些记录,列名是Id,Name和[Entry Date]。列Id是主键,我使用的是SQL Server 2005。

我想编写一个每5条记录返回一次信息的查询,例如我的查询将返回:

enter image description here

正如您在最终结果中所看到的那样,只选择了每5条记录的记录,我该如何做到这一点?

谢谢

3 个答案:

答案 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。

希望这会给你一个想法。