Redian新闻
>
请教oracle select top 10 from ... order by desc
avatar
请教oracle select top 10 from ... order by desc# Database - 数据库
b*m
1
其实数学里也能演绎很多的浪漫,它比世上任何语言都要煽情。9对3说,我除了你,还
是你;4对2说,我除了2,还是2;1对0说,我除了你,一切都变得毫无意义;0对1说,
我除了你,就只有孤独的自己。
avatar
n*6
2
oracle 里面有TABLE: PAYROLL(ID, ..., Salary)
如果我
SELECT TOP 10 Salary
FROM PAYROLL
ORDER BY Salary Desc
能不能得到Salary最高的10条记录?
我记得TOP是随机读取的。是否有高人解释一下?
avatar
c*n
3
1024还可以对2说,我除了你除了你除了你除了你除了你除了你除了你除了你除了你,
还是你啊

【在 b***m 的大作中提到】
: 其实数学里也能演绎很多的浪漫,它比世上任何语言都要煽情。9对3说,我除了你,还
: 是你;4对2说,我除了2,还是2;1对0说,我除了你,一切都变得毫无意义;0对1说,
: 我除了你,就只有孤独的自己。

avatar
j*n
4
I thought TOP is only for T-SQL...
if it does, sure you will get the top 10 highest salary records, because the
result set is sorted.
avatar
C*H
5
赞~!

【在 c*******n 的大作中提到】
: 1024还可以对2说,我除了你除了你除了你除了你除了你除了你除了你除了你除了你,
: 还是你啊

avatar
n*6
6
Ok. Since top is not available in Oracle, let me do in this way.
1. SELECT *
INTO TempTable
FROM PAYROLL
WHERE Salary = (SELECT MAX(SALARY) FROM PAYROLL)
And ID NOT IN (SELECT ID FROM TempTable)

2. SELECT Count = COUNT(*) FROM TempTable
3. Loop 2.3., when Count > 10, exit
avatar
c*n
7
但1024转身又对4说,我除了你.....
[在 crossjoin (从新开始) 的大作中提到:]
:1024还可以对2说,我除了你除了你除了你除了你除了你除了你除了你除了你除了你,
:还是你啊
:...........
avatar
B*g
8
http://www.bristle.com/Tips/SQL.htm#differences_between_oracle_and_ms_sql_server
临阵磨枪,不快也光。

【在 n********6 的大作中提到】
: Ok. Since top is not available in Oracle, let me do in this way.
: 1. SELECT *
: INTO TempTable
: FROM PAYROLL
: WHERE Salary = (SELECT MAX(SALARY) FROM PAYROLL)
: And ID NOT IN (SELECT ID FROM TempTable)
:
: 2. SELECT Count = COUNT(*) FROM TempTable
: 3. Loop 2.3., when Count > 10, exit

avatar
s*0
9
徒弟想说啥啊?是不是想说它就是二百五了?

你,

【在 c*******n 的大作中提到】
: 但1024转身又对4说,我除了你.....
: [在 crossjoin (从新开始) 的大作中提到:]
: :1024还可以对2说,我除了你除了你除了你除了你除了你除了你除了你除了你除了你,
: :还是你啊
: :...........

avatar
n*6
10
Ok. Since top is not available in Oracle, let me do in this way.
1. CREATE TABLE TempTable
AS SELECT
FROM PAYROLL
WHERE Salary = (SELECT MAX(SALARY) FROM PAYROLL)
And ID NOT IN (SELECT ID FROM TempTable)

2. SELECT Count = COUNT(*) FROM TempTable
3. Loop 2.3., when Count > 10, exit
avatar
c*n
11
这也不知道
1024也对4说我除了你除了你除了你, 还是你呀。

【在 s*******0 的大作中提到】
: 徒弟想说啥啊?是不是想说它就是二百五了?
:
: 你,

avatar
c*t
12
Oracle doesn't have top n query.
select x.salary
from (
select salary, rank() over (order by salary desc null last) as rnk fro
m payroll
) x
where x.rnk < 10;
or
select x.salary from (select salary from payroll order by salary desc)
where rownum < 10;

【在 n********6 的大作中提到】
: oracle 里面有TABLE: PAYROLL(ID, ..., Salary)
: 如果我
: SELECT TOP 10 Salary
: FROM PAYROLL
: ORDER BY Salary Desc
: 能不能得到Salary最高的10条记录?
: 我记得TOP是随机读取的。是否有高人解释一下?

avatar
s*0
13
不是啊,最后成1了。
第一次除了4就是256,所以是二百五了。

【在 c*******n 的大作中提到】
: 这也不知道
: 1024也对4说我除了你除了你除了你, 还是你呀。

avatar
c*n
14
你数数看除了几次。
avatar
s*0
15
应该是1024也对4说我除了你除了你除了你除了你, 还是你呀。
avatar
c*n
16
哈谢谢!小学数学没学好
[在 snowman10 (雪人) 的大作中提到:]
:应该是1024也对4说我除了你除了你除了你除了你, 还是你呀。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。