[SQL ] 怎麼樣可以讓資料自動加一

看板Database作者 (懷念的BBS)時間16年前 (2009/10/21 16:27), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
各位大大~~ 小弟正在建一個自己的資料庫~ 這不是作業的~~ 我用的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

10/21 21:58, , 1F

10/21 22:03, , 2F
或是 Google 一下 ROW_NUMBER 在 Oracle 中的用法
10/21 22:03, 2F

10/22 00:59, , 3F
謝謝提供第一個連結的資訊~~問題解決了~~~^^
10/22 00:59, 3F
文章代碼(AID): #1AtiO0gU (Database)