랜덤으로 한개씩 select하기위해 작성했는데 데이터 양이 많거나
여러개를 select 하기 위해서는 보완이 필요 할것 같습니다.
여러개를 한번에 랜덤 하게 가져 올수 없을까요?
----------------------------------------------------------------
CREATE PROCEDURE RandProductId
AS
declare @maxrand float,
@maxid int,
@current_id float, /*fetch 된 값저장*/
@current_rand float, /*fetch 된 값저장*/
@cur1id int, /*fetch 저장*/
@cur2rand float /*fetch 저장*/
select @maxrand = 0
select @current_id = 0
select @current_rand = 0
select @maxid = 0
/********************* cur1 staert *******************/
declare cur1 cursor
for select id from l_gongji
open cur1
fetch cur1 into @cur1id
while ( @@sqlstatus = 0 )
begin
select @current_id = @cur1id
/********************* cur2 start **************/
declare cur2 cursor for
select rand()
open cur2
fetch cur2 into @cur2rand
while (@@sqlstatus = 0)
begin
select @current_rand = @cur2rand
fetch cur2 into @cur2rand
end
close cur2
deallocate cursor cur2
/********************* cur2 end **************/
if @current_rand > @maxrand
begin
select @maxrand = @current_rand
select @maxid = @current_id
end
fetch cur1 into @cur1id
end
close cur1
deallocate cursor cur1
/*********************cur1 end *******************/
select @maxid
return |