文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[原创]一道京东商城的面试题的解决方法

[原创]一道京东商城的面试题的解决方法

时间:2011-01-08  来源:紫の焰

数据表结构为

create table Ques1

(
 id int identity(1,1) primary key,--主键
 [Name] nvarchar(50) not null,--学生姓名
 Score int not null,--学生成绩
 Class int not null--学生班级
)

 

要查询每班前两名学生的信息

 

use db20110107
--定义临时表以存储结果
create table #TempResultTable
(
 id int,
 [Name] nvarchar(50),
 Score int,
 Class int
)
--定义游标
declare Cursor_SelectResult cursor for
 select * from Ques1 order by class asc,score desc
--打开游标
open Cursor_SelectResult

declare @id int,@Name nvarchar(50),@Score int,@Class int --接受记录字段的变量
declare @dealedThisClassStudents int,@dealedCurrentClass int
set @dealedThisClassStudents = 0
set @dealedCurrentClass = -1


fetch Cursor_SelectResult into  @id,@name,@Score,@Class

while(@@fetch_status=0)
begin
 print(Convert(nvarchar(50),@id)+'---'+@name+'---'+Convert(nvarchar(50),@score)+'---'+Convert(nvarchar(50),@class))
  
 if(@class=@dealedCurrentClass)
 begin
  if(@dealedThisClassStudents<2)
  begin
   insert into #TempResultTable values(@id,@name,@Score,@Class)
   set @dealedThisClassStudents = @dealedThisClassStudents + 1
   print('该条已经插入')
  end
  else if(@dealedThisClassStudents>=2)
  begin
   set @dealedThisClassStudents = @dealedThisClassStudents + 1
  end
 end
 else if(@class != @dealedCurrentClass)
 begin
  set @dealedCurrentClass = @class
  set @dealedThisClassStudents = 0
  insert into #TempResultTable values(@id,@name,@Score,@Class)
  print('该条已经插入')
  set @dealedThisClassStudents = @dealedThisClassStudents + 1
 end
 fetch Cursor_SelectResult into  @id,@name,@Score,@Class
 
end
close Cursor_SelectResult
deallocate Cursor_SelectResult

select * from #TempResultTable
drop table #TempResultTable

 

 

如果大家有更好的办法欢迎和大家一起分享,请留言.万分感谢

相关阅读 更多 +
排行榜 更多 +
mirrox模组(玩家自制)手机版下载

mirrox模组(玩家自制)手机版下载

休闲益智 下载
集装箱模拟器手机版下载安装

集装箱模拟器手机版下载安装

模拟经营 下载
哔咔漫画app下载免费2025

哔咔漫画app下载免费2025

浏览阅读 下载