ROW_NUMBER()在SQL2K5版本中新增,该函数返回结果集 分区内 行的序列号,每个分区的第一行从 1 开始,连续不间断,后跟 OVER BY 子句或者 PARTITION BY 子句 先构造一张表,放一些数据进行,SQL脚本如下 --DROP TABLE T CREATE TABLE T(GRP_A VARCHAR(20),GRP_B VARCHAR(20),GRP_C VARCHAR(20),VAL INT) INSERT INTO T(GRP_A,GRP_B,GRP_C,VAL) SELECT 'a1','b1','c1',10 union all SELECT 'a1','b1','c2',20 union all SELECT 'a1','b2','c2',30 union all SELECT 'a1','b2','c3',40 union all SELECT 'a1','b2','c3',50 union all SELECT 'a2','b3','c3',12 union all SELECT 'a2','b3','c3',22 union all SELECT 'a2','b3','c3',32 SELECT * FROM T 执行查询后的结果: GRP_A GRP_B GRP_C VAL -------------------- -----------