1 select b from 表1 group by b having count(*)>12 select * from 表1 where rownum<=3 order by b desc ;
1 select b from 表1 group by b having count(*)>12 select * from 表1 where rownum<=3 order by b desc ;
select t.* from (select * from 表1 rder by b desc )t where rownum<=3
第二题如果用标准的sql有办法实现吗?
第二题select * from 表1 where rownum<=3 order by b desc ;这样写是错的。 应该用jiazheng(飛飞)的写法或者使用 select row_number() over (order by b) rn from 表1 where rn<=3
1 select b from 表1 group by b having count(*)>1 --这样作的结果是只能查询出字段B的值,这样作有效吗?在实际工作中,大多数情况下,需要的不是这样的结果.要得到的是这条记录的其他字段或者*,所以这句话跟本不实用. 2 select * from 表1 where rownum<=3 order by b desc ;
(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)的区别。
select b from 表1 group by b having count(*)>12
select * from 表1 where rownum<=3 order by b desc ;
1
select b from 表1 group by b having count(*)>12
select * from 表1 where rownum<=3 order by b desc ;
应该用jiazheng(飛飞)的写法或者使用
select row_number() over (order by b) rn from 表1 where rn<=3
select b from 表1 group by b having count(*)>1
--这样作的结果是只能查询出字段B的值,这样作有效吗?在实际工作中,大多数情况下,需要的不是这样的结果.要得到的是这条记录的其他字段或者*,所以这句话跟本不实用.
2
select * from 表1 where rownum<=3 order by b desc ;
最开始,我把第一句理解为先去3条,再降序,可是好像查询的结果,好像也是先
降序,再取前3条的。能详细说明一下吗?(1)和(2)的区别。
應該用(2)
應該用(2)
===========================正解`