看板 Database 關於我們 聯絡資訊
各位大大~~ 小弟正在建一個自己的資料庫~ 這不是作業的~~ 我用的DB是Oracle~~ 遇到一個問題~~ 想問一下有什麼方法~~ 主要是我有一個table叫Record~~我裡面現在只有一個attribute叫Score~資料型態為integer~ 簡單來說~ 這個Record table裡面只有這個Score~~ 然後Score包含的都是不重覆的數字~~ 想問說~~ 假設我不再加其他的attribute~~ 怎樣的SQL語法可以秀出以下的東西~~ 第一欄秀出全部的Score~~從大排到小~~(這個比較簡單) 然後第二欄叫Rank~~數字是1,2,3....(這個原本不存在) 最大的數字就是第一名~~所以就排1在rank~ 出來就會像這樣: Score rank ------------ 5478 1 5243 2 998 3 556 4 我問過我朋友~~ 他用SQLserver可以用identity(int, 1, 1)去讓rank的地方自動跑出來~~ 像這樣~~ select R.score as score, identity(int, 1, 1) as rank into #F from Record R group by R.score order by R.score desc select * from #F 可是我試oracle不行~~ 而且SQLserver是可以一次執行完~~ 可是oracle一次只能執行一個SQL~~ 想問一下有什麼方法~~ 謝謝!!!!^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 67.186.28.46
fsz570:請參考http://blog.xuite.net/fsz570.neko/myLife/27891351 10/21 21:58
fsz570:或是 Google 一下 ROW_NUMBER 在 Oracle 中的用法 10/21 22:03
hurtooe:謝謝提供第一個連結的資訊~~問題解決了~~~^^ 10/22 00:59