如何从表格中选择1,4,7,10,13,...编号的记录

时间:2011-07-22 05:34:02

标签: sql

 ID NAME                        AGE     DEPTNO     SALARY

  1 shasank                      25         11       2025
  2 raju                         27         12       2027
  3 son                          33         12       2131
  6 bali                         31         10       2031
  4 don                          33         11       2132
  5 rambo                        32         11       2121
  7 dimpu                        33         12       2314
  8 chir                         34         10       2123
  9 nag                          35         10       2213
 10 ram                          28         13       2141

4 个答案:

答案 0 :(得分:2)

使用模运算符? mod()表单是标准方式,但很多数据库也使用%运算符。

select * from table where MOD(ID,3) = 1;

答案 1 :(得分:1)

select * from table where id in (1,4,7,10,13)

答案 2 :(得分:1)

SELECT * FROM table
WHERE ID % 3 = 1

当然,假设您正在寻找每三个身份证。

此外,这是通过SQL Server完成的 - 不确定您使用的数据库。

修改

这是一个不使用ID(SQL Server)的选项

SELECT *
FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY Name) RowNum
      FROM table) X
WHERE X.RowNum % 3 = 1

答案 3 :(得分:1)

SET @i = 0;
SELECT ..., ((@i := @i + 1) % 3) AS `i` FROM `table` ... HAVING `i` = 1