首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求SQL代码分析进程

2013-01-08 
求SQL代码分析过程User_Idname1121324352637485表名:Bse_User,删除重复的Name中User_Id比较小的记录。[解决

求SQL代码分析过程
User_Idname
11         
21         
32         
43         
52         
63         
74         
85         
表名:Bse_User,删除重复的Name中User_Id比较小的记录。
[解决办法]

delete from bse_user a 
where exists (select 1 from (select min(user_id)userid,name from bse_user group by name) b 
where a.user_id=b.user_id and a.name=b.name)

[解决办法]
delete a
from (select *,row_number()over(partition by Name order by User_ID desc) as Row from Bse_User) as a
where Row>1


SQL2005以上版本可以这样用
[解决办法]
看来你没明白max/min/count/avg/sum这五个的用法和sql查询的顺序,
select (User_Id) from Bse_User group by Name   having count(*)>1这句,先from,在group by,再select,再having,group by只出现了name,那么你在select的之后只能出现name,而其他字段要用上面五个函数的其中一个或一些来包住,不然肯定报错。

热点排行