想查询排名第3的人员名单
原数据表如下:
create
table
test
(
name varchar ( 12 ),
myValue int
)
insert into test
select ' zhang ' , 80
union select ' wang ' , 98
union select ' li ' , 100
union select ' zhao ' , 92
union select ' chen ' , 82
union select ' qin ' , 60
union select ' zhou ' , 92
(
name varchar ( 12 ),
myValue int
)
insert into test
select ' zhang ' , 80
union select ' wang ' , 98
union select ' li ' , 100
union select ' zhao ' , 92
union select ' chen ' , 82
union select ' qin ' , 60
union select ' zhou ' , 92
查询第3名的人员名单
SELECT
*
FROM test a
WHERE ( SELECT Count ( DISTINCT myvalue)
FROM test
WHERE myvalue >= a.myvalue) = 3
FROM test a
WHERE ( SELECT Count ( DISTINCT myvalue)
FROM test
WHERE myvalue >= a.myvalue) = 3
结果
name myValue
-- ---------- -----------
zhao 92
zhou 92
( 2 行処理されました)
-- ---------- -----------
zhao 92
zhou 92
( 2 行処理されました)
查询前3名的人员名单
SELECT *
FROM test a
WHERE ( SELECT Count ( DISTINCT myvalue)
FROM test
WHERE myvalue >= a.myvalue) <= 3
结果
name myValue
-- ---------- -----------
li 100
wang 98
zhao 92
zhou 92
( 4 行処理されました)
-- ---------- -----------
li 100
wang 98
zhao 92
zhou 92
( 4 行処理されました)
内容由http://community.csdn.net/Expert/topic/5346/5346530.xml?temp=.3626978整理而成。