前些日子,有学生参加了一次神州数码招聘软件测试工程师的笔试.其中有道SQL题目把他难住了.
CREATE TABLE jobs
(
job_id smallint IDENTITY(1,2),
job_name varchar(50) NOT NULL,
PRIMARY KEY(job_id)
)
values('tester1')
insert into jobs(job_name)
values('tester2')
insert into jobs(job_name)
values('tester3')
insert into jobs(job_name)
values('tester4')
insert into jobs(job_name)
values('tester5')
insert into jobs(job_name)
values('tester6')
insert into jobs(job_name)
values('tester7')
insert into jobs(job_name)
values('tester8')
--声明三个局部变量
declare @job_id smallint
declare @job_name varchar(50)
declare @table_length smallint
--控制循环次数
set @table_length=5
--声明游标 其中scroll:随意移动游标 dynamic:读写游标
declare sele_cursor cursor scroll dynamic for select * from jobs
--打开游标
open sele_cursor
--定位到第5条记录
fetch relative 5 from sele_cursor into @job_id,@job_name
--循环三次,输出5,6,7条记录
while(@table_length<=7)
begin
select @job_id ,@job_name
fetch next from sele_cursor into @job_id,@job_name
set @table_length=@table_length+1
end
--关闭游标
close sele_cursor
--删除游标资源
deallocate sele_cursor
go
--最后的结果