declare @n int
set @n=1
while @n <= 5
begin
select cname,semester,credit
from course
where cno in(select top 1 cno from course where semester = @n group by cno,credit order by credit asc)
set @n=@n+1
end

解决方案 »

  1.   

    --定义接收表变量
    --字段类型你自己根据实际的来定义
    DECLARE @t TABLE (
    cname NVARCHAR(20),
    semester NVARCHAR(20),
    credit NVARCHAR(20)
    )
    --循环插入
    declare @n int
    set @n=1
    while @n <= 5
    BEGIN
        INSERT INTO @t(cname,semester,credit)
        select cname,semester,credit
        from course
        where cno in(select top 1 cno from course where semester = @n group by cno,credit order by credit asc)
        set @n=@n+1
    END
    --查询表变量
    SELECT * FROM @t