1
resposta

Minha resolução

DECLARE @VENDEDOR_ALEATORIO VARCHAR(12)
DECLARE @VAL_INICIAL INT
DECLARE @VAL_FINAL INT
DECLARE @ALEATORIO INT
DECLARE @CONTADOR INT

SET @VAL_INICIAL = 1
SELECT @VAL_FINAL = COUNT(*)
FROM [TABELA DE VENDEDORES]
SET @ALEATORIO = [dbo].[NumeroAleatorio](@VAL_INICIAL,@VAL_FINAL)
SET @CONTADOR = 1

DECLARE CURSOR1 CURSOR FOR 
SELECT MATRICULA 
FROM [TABELA DE VENDEDORES]
PRINT @ALEATORIO
OPEN CURSOR1
FETCH NEXT FROM CURSOR1 INTO @VENDEDOR_ALEATORIO
WHILE @CONTADOR < @ALEATORIO
BEGIN
    FETCH NEXT FROM CURSOR1 INTO @VENDEDOR_ALEATORIO
    SET @CONTADOR = @CONTADOR + 1
END
CLOSE CURSOR1
DEALLOCATE CURSOR1

SELECT @VENDEDOR_ALEATORIO, @ALEATORIO
SELECT * FROM [TABELA DE VENDEDORES]

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Ei! Tudo bem, Ycaro?

Parabéns pelo código e pela resolução, está correto!

Uma dica: em projetos com grandes volumes de dados, o uso de cursors em SQL Server não é recomendado para essas operações. Pois, os Cursors processam linha por linha, o que é mais lento do que soluções que operam sobre o conjunto de dados completo.

Conteúdos relacionados

Continue se dedicando aos estudos e qualquer dúvida, compartilhe.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!