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

SQL Server查询:按SIZEPOS字段去重并保留重复值首行的实现方法

实现方案

在SQL Server中可通过ROW_NUMBER()窗口函数实现需求:对相同SIZEPOS的行分组编号,仅保留每组编号为1的行即可得到去重后的结果。

完整查询代码

DECLARE @SUBSTITUTE TABLE(SUBSTITUTECODE varchar(25), COLORCODE varchar(15), SIZEPOS smallint);

INSERT INTO @SUBSTITUTE(SUBSTITUTECODE, COLORCODE, SIZEPOS) VALUES
('002252200005001', 'BLK', 2),
('002252200005002', 'BLK', 3),
('002252200005004', 'BLK', 5),
('002252200005005', 'BLK', 6),
('002252200005006', 'BLK', 10),
('002252200005007', 'BLK', 11),
('0022522005003', 'BLK', 4),
('0022522005004', 'BLK', 5);

WITH RankedSub AS (
    SELECT 
        SUBSTITUTECODE,
        COLORCODE,
        SIZEPOS,
        ROW_NUMBER() OVER(PARTITION BY SIZEPOS ORDER BY (SELECT 1)) AS rn
    FROM @SUBSTITUTE
)
SELECT SUBSTITUTECODE, COLORCODE, SIZEPOS
FROM RankedSub
WHERE rn = 1;

说明

如果你的实际业务表中有明确可判定插入先后的字段(比如自增主键、插入时间戳等),建议将ORDER BY (SELECT 1)替换为对应的字段,保证“保留首次出现行”的逻辑完全符合业务要求。

内容的提问来源于stack exchange,提问作者Faye D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:24:00