问两个plsql中查询的语句怎么写了?

ifirefox 2007-06-24 07:26:08
一,
查询表1中字段b有重复的记录?
二,
查询表1,按字段b排序,取最大的三条记录?

...全文
439 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
caibaoying 2007-07-20
  • 打赏
  • 举报
回复
(1)rownum依據data insert的先後順序不同會有改變.
應該用(2)
===========================正解`
jacobrong79 2007-07-20
  • 打赏
  • 举报
回复
(1)rownum依據data insert的先後順序不同會有改變.
應該用(2)
mig1975 2007-07-20
  • 打赏
  • 举报
回复
没人回答,顶
mig1975 2007-07-03
  • 打赏
  • 举报
回复
(1)select * from 表1 where rownum<=3 order by b desc

(2)select t.* from (select * from 表1 rder by b desc )t where rownum<=3

关于这上面两句,(1)错在什么地方呢。出来的结果好像是一样的啊。
最开始,我把第一句理解为先去3条,再降序,可是好像查询的结果,好像也是先
降序,再取前3条的。能详细说明一下吗?(1)和(2)的区别。
saromman 2007-07-03
  • 打赏
  • 举报
回复
1
select b from 表1 group by b having count(*)>1
--这样作的结果是只能查询出字段B的值,这样作有效吗?在实际工作中,大多数情况下,需要的不是这样的结果.要得到的是这条记录的其他字段或者*,所以这句话跟本不实用.
2
select * from 表1 where rownum<=3 order by b desc ;
ifirefox 2007-06-24
  • 打赏
  • 举报
回复
第二题如果用标准的sql有办法实现吗?
lingling295 2007-06-24
  • 打赏
  • 举报
回复
学习
jiazheng 2007-06-24
  • 打赏
  • 举报
回复
select t.* from (select * from 表1 rder by b desc )t where rownum<=3
kingofworl 2007-06-24
  • 打赏
  • 举报
回复

1
select b from 表1 group by b having count(*)>1

2
select * from 表1 where rownum<=3 order by b desc ;

kelsoncong 2007-06-24
  • 打赏
  • 举报
回复
1
select b from 表1 group by b having count(*)>1

2
select * from 表1 where rownum<=3 order by b desc ;
mayongzhi 2007-06-24
  • 打赏
  • 举报
回复
第二题select * from 表1 where rownum<=3 order by b desc ;这样写是错的。
应该用jiazheng(飛飞)的写法或者使用
select row_number() over (order by b) rn from 表1 where rn<=3

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧