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

如何在TSQL中按条件过滤重复行 员工表去重保留Active记录

TSQL员工重复记录筛选实现方案

核心实现逻辑

使用ROW_NUMBER()窗口函数按员工维度分组,给同员工的记录设置状态优先级排序,取每组排名第一的记录即可满足需求:同员工有多条记录时优先取Active状态的,单条记录无论状态直接保留。

实现代码

-- 定义CTE给每条员工记录打排名标签
WITH RankedEmp AS (
    SELECT
        FullName,
        Status,
        [Current Position], -- 列名带空格需用方括号包裹
        ROW_NUMBER() OVER(
            PARTITION BY FullName -- 按员工姓名分组,若表有唯一员工ID建议替换为ID,避免同名冲突
            ORDER BY CASE WHEN Status = 'Active' THEN 1 ELSE 2 END -- Active状态优先级更高,排在组内第一位
        ) AS rn
    FROM 你的员工表 -- 替换为实际的表名
)
-- 筛选每组排名第一的记录即为最终结果
SELECT FullName, Status, [Current Position]
FROM RankedEmp
WHERE rn = 1

结果验证

用提供的示例数据执行上述代码,返回结果和预期完全一致,符合contract to hire、rebadge场景下的去重需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:30:01