作者hurtooe (懷念的BBS)
看板Database
標題[SQL ] 怎麼樣可以讓資料自動加一
時間Wed Oct 21 16:27:42 2009
各位大大~~
小弟正在建一個自己的資料庫~
這不是作業的~~
我用的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:或是 Google 一下 ROW_NUMBER 在 Oracle 中的用法 10/21 22:03
→ hurtooe:謝謝提供第一個連結的資訊~~問題解決了~~~^^ 10/22 00:59