[SQL ] 查詢前十大的資料

看板Database (資料庫)作者 (眠月)時間18年前 (2006/10/19 19:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
資料庫名稱: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
文章代碼(AID): #15Ds5KNl (Database)
文章代碼(AID): #15Ds5KNl (Database)