You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中查询数据表的偶数行与奇数行?

PostgreSQL 查询筛选员工表的奇数行与偶数行记录

原始员工数据表

EmpID EmpFname     EmpLname Department Salary
1      Karan        mehta     HR       300000
2      Rohit        Sharma   Admin      75000
3      Ankush       Rajput   Account    60000
4      Priyadarshini Sharma   HR        500000
5      Sanket       Gupta    Developer  100000
6      Shruthi      Varyar   Admin       80000
7      Rohit        Sharma   Admin       75000

方法一:基于EmpID的奇偶性筛选

如果表中的EmpID是连续自增且与行插入顺序一致的,直接通过EmpID取余判断即可:

筛选奇数行记录

SELECT * FROM employees
WHERE EmpID % 2 = 1;

筛选偶数行记录

SELECT * FROM employees
WHERE EmpID % 2 = 0;

方法二:基于行号筛选(不依赖EmpID)

如果EmpID存在缺失、不连续,或者你需要严格按照表的物理行顺序筛选,可以使用ROW_NUMBER()窗口函数生成行号后再过滤。

注意:务必在OVER()子句中添加ORDER BY指定排序规则(示例中用ORDER BY EmpID),否则数据库返回的行顺序是不确定的,多次查询结果可能不一致。

筛选奇数行记录

SELECT EmpID, EmpFname, EmpLname, Department, Salary
FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY EmpID) AS row_num
    FROM employees
) AS numbered_rows
WHERE row_num % 2 = 1;

筛选偶数行记录

SELECT EmpID, EmpFname, EmpLname, Department, Salary
FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY EmpID) AS row_num
    FROM employees
) AS numbered_rows
WHERE row_num % 2 = 0;

内容的提问来源于stack exchange,提问作者Sarath S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:53:10