selec * from (select top 2 * from 表 order by 成绩 desc) a where 成绩<(select max(成绩) from 表)
--查询成绩第一的人 select top 1 * from 成绩表 order by 成绩 desc
--查询成绩第二的人:select top 1 * from 成绩表 where 姓名 not in(select top 1 姓名 from 成绩表 order by 成绩 desc ) order by 成绩 desc
因为成绩第一或者第二的人可能不止一个,所以我觉得楼上的大哥写的不大欠佳--成绩第一的人 select 姓名 from 成绩表 where 成绩 in( select max(成绩) from 成绩表 )--成绩第二的人 select 姓名 from 成绩表 where 成绩 in ( select max(成绩) from 成绩表 where 成绩 not in ( select 成绩 from 成绩表 where 成绩 in( select max(成绩) from 成绩表 )) )
楼上的思维完整性8错啊!up,up; TRY THIS:--根据作者需求,实现如下:IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '成绩表') DROP TABLE 成绩表 GOCREATE TABLE 成绩表 (姓名 CHAR(8)NOT NULL,成绩 INT)GO--内容虚构,纯属自娱:INSERT INTO 成绩表 SELECT '王晶',88 UNION ALL SELECT '楼主',89 UNION ALL SELECT '成龙',90 UNION ALL SELECT '李连杰',90 UNION ALL SELECT '周星驰',95GO--第一名:SELECT 姓名,成绩 FROM 成绩表 WHERE 成绩>=(SELECT MAX(成绩) FROM 成绩表)姓名 成绩 -------- ----------- 周星驰 95(所影响的行数为 1 行)--第二名:SELECT 姓名,成绩 FROM 成绩表 WHERE 成绩=( SELECT MAX(成绩) FROM ( SELECT 姓名,成绩 FROM 成绩表 WHERE 姓名 NOT IN( SELECT 姓名 FROM 成绩表 WHERE 成绩>=( SELECT MAX(成绩) FROM 成绩表)))AS 成绩表temp)姓名 成绩 -------- ----------- 成龙 90 李连杰 90(所影响的行数为 2 行)--DROP TABLE 成绩表
select top 1 * from 成绩表 order by 成绩 desc
)
order by 成绩 desc
select 姓名 from 成绩表 where 成绩 in( select max(成绩) from 成绩表 )--成绩第二的人
select 姓名 from 成绩表 where 成绩 in (
select max(成绩) from 成绩表 where 成绩 not in (
select 成绩 from 成绩表 where 成绩 in(
select max(成绩) from 成绩表 )) )
TRY THIS:--根据作者需求,实现如下:IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = '成绩表')
DROP TABLE 成绩表
GOCREATE TABLE 成绩表 (姓名 CHAR(8)NOT NULL,成绩 INT)GO--内容虚构,纯属自娱:INSERT INTO 成绩表 SELECT '王晶',88
UNION ALL SELECT '楼主',89
UNION ALL SELECT '成龙',90
UNION ALL SELECT '李连杰',90
UNION ALL SELECT '周星驰',95GO--第一名:SELECT 姓名,成绩 FROM 成绩表 WHERE 成绩>=(SELECT MAX(成绩) FROM 成绩表)姓名 成绩
-------- -----------
周星驰 95(所影响的行数为 1 行)--第二名:SELECT 姓名,成绩 FROM 成绩表 WHERE 成绩=(
SELECT MAX(成绩) FROM (
SELECT 姓名,成绩 FROM 成绩表 WHERE 姓名 NOT IN(
SELECT 姓名 FROM 成绩表 WHERE 成绩>=(
SELECT MAX(成绩) FROM 成绩表)))AS 成绩表temp)姓名 成绩
-------- -----------
成龙 90
李连杰 90(所影响的行数为 2 行)--DROP TABLE 成绩表