关于学生按分数排列名次的问题

    技术2022-05-11  124

    关于学生按分数排列名次的问题 把学生的分数按从高到低的顺序进行排序,然后产生排名的,所以没有引用任何参数。 -------代码开始-------- SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO create procedure up_get_sort AS declare @ll_sort int, @ldc_value dec(9,2), @ls_id varchar(16), @ll_same int, @ls_sql varchar(200) Begin set @ll_sort =1 declare cur cursor for  SELECT id,use_value FROM exam_use_sort order by isnull(use_value,0) desc OPEN cur fetch next from cur into @ls_id,@ldc_value WHILE @@FETCH_STATUS = 0 BEGIN update exam_use_sort set use_sort = @ll_sort where use_value = @ldc_value select @ll_same = isnull(count(*),0) from exam_use_sort where use_value = @ldc_value set @ll_sort = @ll_sort+1 if(@ll_same>=2) begin set @ll_same=@ll_same-1 declare @i int set @i=0   while(@i<@ll_same)     begin fetch next from cur         set @i=@i+1     end end fetch next from cur into @ls_id,@ldc_value END CLOSE cur; DEALLOCATE cur; End -------------SELECT * FROM exam_use_sort ORDER BY use_value desc---------- GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO ---------代码结束---------------------- -------函数用到的表------------------ CREATE TABLE [exam_use_sort] ( [id] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [use_value] [decimal](18, 2) NULL , [use_sort] [int] NULL ) ON [PRIMARY] GO  

    最新回复(0)