日期:2014-05-17  浏览次数:20618 次

跪求 sqlserver中删除根据多个字段查询出来的重复记录保留一条就可以了。
本人用的sql2000;

比如 表明是 People,它有name,sex,age,love,marry 这5个字段。例:数据如下 
   name    sex     age      love         marry   
   
   张三      N      22      足球              否               
   张三      F      50    篮球              否               
   张三      N      50    篮球          否               
   赵六      F      30    上网          是               
   赵六      N      30    上网          是               
   赵六      N      30   听音乐        是        

现在根据name 和sex 两个字段查询数据,可以看到name和sex同时相同的只有 (张三 N) 和(赵六 N)。两个字段同时相同的数据只保留一条就可以了。比如(张三  N 。。。 )和(赵六 N。。。)分别保留一条数据就可以了。结果只有 张三 N  、张三 F、赵六 N、赵六 F 这四条数据了。

求sql语句。

在线等。。。

         
sqlserver 删除重复记录?保留一条

------解决方案--------------------
SELECT [name],[sex],[age],[love],[marry]
FROM
(
SELECT *,rn=ROW_NUMBER() OVER(PARTITION BY [name],[sex] ORDER BY GETDATE()) 
FROM [People] 
) T
WHERE rn=1

------解决方案--------------------

create table People
(name varchar(10), sex varchar(10), age int, love varchar(10), marry varchar(10))

insert into People 
 select '张三', 'N', 22, '足球', '否' union all          
 select '张三', 'F', 50, '篮球', '否' union all
 select '张三', 'N', 50, '篮球', '否' union all
 select '赵六', 'F', 30, '上网', '是' union all
 select '赵六'