- SQL code
-- 学习 APPLY 和 TOP 用法------------------------------------- SQL 版本:--------------- Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) -- Oct 14 2005 00:33:37 -- Copyright (c) 1988-2005 Microsoft Corporation-- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)-------------------------------------> 创建测试表declare @student table( ---学生表bj varchar(10), -- 班级xh char(4), -- 学号name varchar(10), -- 姓名 cj int) -- 成绩declare @tj table( ---统计表bj varchar(10), -- 班级num int) -- 人数 :从学生表中选取对应班级的前num名学生成绩 set nocount on--> 添加测试数据insert @student select '一班' ,'A001','A1',89insert @student select '一班' ,'A002','A2',89insert @student select '一班' ,'A003','A3',59insert @student select '一班' ,'A004','A4',80insert @student select '一班' ,'A005','A5',99insert @student select '一班' ,'A006','A6',100insert @student select '一班' ,'A007','A7',82insert @student select '二班' ,'B001','B1',19insert @student select '二班' ,'B001','B2',81insert @student select '二班' ,'B001','B3',69insert @student select '二班' ,'B001','B4',86insert @student select '二班' ,'B001','B5',88insert @student select '二班' ,'B001','B6',99insert @student select '二班' ,'B001','B7',100insert @student select '二班' ,'B001','B8',90insert @student select '二班' ,'B001','B9',97 insert @tj select '一班',3insert @tj select '二班',5-- 2005.T-SQL select t.bj,s.xh,s.name,s.cjfrom @tj tcross apply ( SELECT TOP(t.num) with ties -- 加 with ties,一班将选出4个人(2个人并列第三名) xh,name,cj from @student where t.bj=bj -- 加where 功能类似于 inner join ;不加类似于 cross join order by cj desc )sorder by case when t.bj='一班' then 1 else 2 end asc,s.cj desc,s.xh asc ---排序/*bj xh name cj---------- ---- ---------- -----------一班 A006 A6 100一班 A005 A5 99一班 A001 A1 89一班 A002 A2 89二班 B001 B7 100二班 B001 B6 99二班 B001 B9 97二班 B001 B8 90二班 B001 B5 88*/
------解决方案--------------------
学习
------解决方案--------------------
good
------解决方案--------------------
------解决方案--------------------
学习
------解决方案--------------------
学习
------解决方案--------------------
谢谢整理
------解决方案--------------------
------解决方案--------------------
学习~
------解决方案--------------------
学习