ITPUB??ì3
ITPUB论坛 » Oracle开发 » 求SQL语句,越简单越好

标题: [SQL] 求SQL语句,越简单越好
离线 congruilan
酒鬼


精华贴数 0
个人空间 0
技术积分 255 (7527)
社区积分 3 (21787)
注册日期 2007-2-2
论坛徽章:0
      
      

发表于 2008-7-5 15:12 
求SQL语句,越简单越好

有一个张员工工资表(SALARY),表有三列:员工编号(ID),姓名(NAME),工资(SALARY)
1.查询id重复记录
2.删除id重复记录,只保留第一条(说明,不需要考虑表中存在完全相同纪录的情况)


__________________
一切都是为了酒.......
All for a better future!

http://congruilan.itpub.net/
只看该作者    顶部
在线/呼叫 zhangfengh
老狐狸


精华贴数 3
个人空间 0
技术积分 12182 (95)
社区积分 5258 (272)
注册日期 2002-10-12
论坛徽章:80
数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星
      

发表于 2008-7-5 15:18 
家庭作业?


__________________
=======================================
接受以下奥运徽章赞助
黄色:篮球、田径、体操
红色:射击
=======================================
接受鲜花赞助
蓝色妖姬
紫蜘蛛
九尾狐狸
=======================================
狐狸在这个世界上是凭借聪明而得到生存的,并且在这个世界上占有一席之地,学习狐狸的聪明,少走弯路。
=======================================
聪明的人,能把别人的经验吸收过来,使之成为自己的经验!
=======================================
只看该作者    顶部
离线 congruilan
酒鬼


精华贴数 0
个人空间 0
技术积分 255 (7527)
社区积分 3 (21787)
注册日期 2007-2-2
论坛徽章:0
      
      

发表于 2008-7-5 15:19 
回复 #1 congruilan 的帖子

知道第一个:
1.
select *
from salary
where ID in
(
select ID
from salary
group by ID
having count(*)>1
)

第二个还没想出来,学习SQL中,
多谢大家指教.


__________________
一切都是为了酒.......
All for a better future!

http://congruilan.itpub.net/
只看该作者    顶部
离线 congruilan
酒鬼


精华贴数 0
个人空间 0
技术积分 255 (7527)
社区积分 3 (21787)
注册日期 2007-2-2
论坛徽章:0
      
      

发表于 2008-7-5 15:21 


QUOTE:
原帖由 zhangfengh 于 2008-7-5 15:18 发表
家庭作业?


学习SQL中,惭愧^


__________________
一切都是为了酒.......
All for a better future!

http://congruilan.itpub.net/
只看该作者    顶部
离线 wuhuaT
勿忘我


来自 勿问我
精华贴数 0
个人空间 0
技术积分 1686 (979)
社区积分 469 (1423)
注册日期 2008-1-14
论坛徽章:8
      
      

发表于 2008-7-5 15:32 
ROW_NUMBER(),MAX()......


__________________
活到老,学到老,玩到老,乐到老
只看该作者    顶部
离线 sunfly1983
初级会员


精华贴数 0
个人空间 0
技术积分 736 (2550)
社区积分 362 (1676)
注册日期 2006-10-14
论坛徽章:4
授权会员2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:曲棍球  
      

发表于 2008-7-5 15:37 
类似的帖子好像还不少:
给一个方案:
delete from salary a where a.rowid >(select min(b.rowid) from salary where a.id=b.id);


只看该作者    顶部
离线 congruilan
酒鬼


精华贴数 0
个人空间 0
技术积分 255 (7527)
社区积分 3 (21787)
注册日期 2007-2-2
论坛徽章:0
      
      

发表于 2008-7-5 16:16 


QUOTE:
原帖由 wuhuaT 于 2008-7-5 15:32 发表
ROW_NUMBER(),MAX()......

老大能不能说明白一点啊


__________________
一切都是为了酒.......
All for a better future!

http://congruilan.itpub.net/
只看该作者    顶部
在线/呼叫 zhangweicai74
阿财


来自 贵州
精华贴数 3
个人空间 240
技术积分 5305 (243)
社区积分 20166 (67)
注册日期 2007-12-13
论坛徽章:133
奥运纪念徽章2008北京奥运纪念徽章:跆拳道2008北京奥运纪念徽章:跆拳道2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:跆拳道
2008北京奥运纪念徽章:跆拳道2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:射击2008北京奥运纪念徽章:射击

发表于 2008-7-5 17:28 


QUOTE:
原帖由 congruilan 于 2008-7-5 16:16 发表

老大能不能说明白一点啊

我是最差的,来回答一下简单的问题:
with tab as (select *,row_number() over (partiton by id order by salary) rn from salary)
select id,name,salary from tab where rn=1


__________________
NEVER TOO LATE
想吃贵州家乡菜不?进来嘛,老乡!!
http://space.itpub.net/12391917/viewspace-257185
玩玩双节棍(l_l)

美丽家乡黄果树瀑布
http://space.itpub.net/12391917/viewspace-244134
只看该作者    顶部
离线 andytianyi
中级会员


精华贴数 0
个人空间 0
技术积分 809 (2298)
社区积分 2 (30325)
注册日期 2007-3-28
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-7-5 17:42 


QUOTE:
原帖由 zhangweicai74 于 2008-7-5 17:28 发表


我是最差的,来回答一下简单的问题:
with tab as (select *,row_number() over (partiton by id order by salary) rn from salary)
select id,name,salary from tab where rn=1

这个只是查询出数据,达不到LZ要求的啊,呵呵,必须要DELETE的


只看该作者    顶部
离线 andytianyi
中级会员


精华贴数 0
个人空间 0
技术积分 809 (2298)
社区积分 2 (30325)
注册日期 2007-3-28
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-7-5 17:43 
同6楼。。。。。。。


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问