作者yoco315 (眠月)
看板Database
标题[SQL ] 查询前十大的资料
时间Thu Oct 19 19:45:50 2006
资料库名称:Oracle
资料库版本:10.2
内容/问题描述:
Table :
Land ( Name CHAR(10), Price INT ) ;
敝人正在写资料库的作业,目前遇到一个障碍,
作业的需求之一是要在一个表格当中,查出前十高的地价,所对应的地名,
我嚐试了以下写法
SELECT *
FROM Land
ORDER BY Price
LIMIT 10 ; // 这行是跟学长请教的
这个语法在 MySQL 可以用,
但是在 Oracle 不能用,
而且也不是完全符合我的需求。
根据老师的题义,
我是要列出十个不同的地价,
而这十个地价是前十高的,
而不同的地可能有一样的地价,
也就是说我要列出来的地名是可能超过10笔的。
我原先的想法是利用 Nested Query
SELECT *
FROM a AS Land
WHERE a.Price >=
SELECT MIN(Price)
FROM Land
WHERE
SELECT Price
FROM b AS Land
GROUP BY b.Price
ORDER BY b.Price
LIMIT 10
就是先依照价钱 group 以後
列出前十高的价钱,找出当中最便宜的那个
之後把地价大於等於这个价钱的地名都印出来
可是 LIMIT 不能用,我就觉得很困惑,无能为力
而且老师要求的是要用标准语法,
就算 Oracle 能用 LIMIT 我似乎也不能用上他
请教前辈们,感谢。
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.42