日期:2014-05-16  浏览次数:20469 次

oracle的rownum与having用法 去除重复 在重复情况用rownum

一般来说,大家会用rownum,也就是伪列来指定要显示多条数据,

比如

select linename from aced  where rownum<3 

但是,大家注意,如果取出来的数据有重复数据,用rownum是达不了你要的效果的。比如你要取5条数据,其中四条是重复,那你最后只能得到两条。


那该肿么办呢,解决办法如下:


SELECT
*
FROM
(
SELECT
PROJECT_LISTING.VARIETY_NAME
FROM
PROJECT_LISTING
WHERE
PROJECT_LISTING.VARIETY_NAME IS NOT NULL
GROUP BY
PROJECT_LISTING.VARIETY_NAME
HAVING
COUNT (*) = 1

)
WHERE
ROWNUM <= 5


这样就可以了。