作者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
2F:推 fsz570:或是 Google 一下 ROW_NUMBER 在 Oracle 中的用法 10/21 22:03
3F:→ hurtooe:谢谢提供第一个连结的资讯~~问题解决了~~~^^ 10/22 00:59