用游标
Declare @ii int
Declare @BB nvarchar(200)
Declare @B1 nvarchar(200)
Declare @B2 nvarchar(200)
Declare @B3 nvarchar(200)
Declare Row_cur Cursor FOR Select top 3 roid FROM 表
OPEN Row_cur fetch next from Row_cur into @BBset @ii = 1
FETCH NEXT from Row_cur
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ii = 1)
begin
set @B1 = @BB
end
else if (@ii = 2)
begin
set @B2 = @BB
end
else if (@ii = 3)
begin
set @B3 = @BB
end
set @ii = @ii + 1
FETCH NEXT from Row_cur
END
close Row_cur
deallocate Row_cur
Declare @ii int
Declare @BB nvarchar(200)
Declare @B1 nvarchar(200)
Declare @B2 nvarchar(200)
Declare @B3 nvarchar(200)
Declare Row_cur Cursor FOR Select top 3 roid FROM 表
OPEN Row_cur fetch next from Row_cur into @BBset @ii = 1
FETCH NEXT from Row_cur
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ii = 1)
begin
set @B1 = @BB
end
else if (@ii = 2)
begin
set @B2 = @BB
end
else if (@ii = 3)
begin
set @B3 = @BB
end
set @ii = @ii + 1
FETCH NEXT from Row_cur
END
close Row_cur
deallocate Row_cur
Declare @BB nvarchar(200)
Declare @B1 nvarchar(200)
Declare @B2 nvarchar(200)
Declare @B3 nvarchar(200)
Declare Row_cur Cursor FOR Select top 3 roid FROM 表
OPEN Row_cur fetch next from Row_cur into @BBset @ii = 1
FETCH NEXT from Row_cur
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ii = 1)
begin
set @B1 = @BB
end
else if (@ii = 2)
begin
set @B2 = @BB
end
else if (@ii = 3)
begin
set @B3 = @BB
end
set @ii = @ii + 1
FETCH NEXT from Row_cur into @BB
END
close Row_cur
deallocate Row_cur
declare @ii int
declare @bb varchar(200),@b1 varchar(200),@b2 varchar(200),@b3 varchar(200),@b4 varchar(200)
declare Row_cur cursor for select top 4 (cast(lsh as varchar(10)) + xm + cast(xd as varchar(10)))as xs from xd order by lsh desc
open Row_curfetch next from Row_cur into @bb
set @ii = 1
fetch next from Row_cur
while @@FETCH_STATUS = 0
begin
if (@ii=1)
begin
set @b1=@bb
end
else if (@ii =2)
begin
set @b2 = @bb
end
else if (@ii=3)
begin
set @b3 = @bb
end
else if (@ii = 4)
begin
set @b4=@bb
end
set @ii=@ii+1
fetch next from Row_cur into @bb
end
close Row_cur
deallocate Row_cur
select @b1,@b2,@b3,@b4
这个是我修改的,执行后的结果如下图
Declare @BB nvarchar(200)
Declare @B1 nvarchar(200)
Declare @B2 nvarchar(200)
Declare @B3 nvarchar(200)
Declare Row_cur Cursor FOR Select top 3 song FROM song
OPEN Row_cur
fetch next from Row_cur into @BB
set @ii = 1
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ii = 1)
begin
set @B1 = @BB
end
else if (@ii = 2)
begin
set @B2 = @BB
end
else if (@ii = 3)
begin
set @B3 = @BB
end
set @ii = @ii + 1
FETCH NEXT from Row_cur into @BB
END
close Row_cur
deallocate Row_cur