segunda-feira, 11 de maio de 2009

Ordenando um SELECT aleatóriamente

Para ordenar de maneira aleatória registros em um SELECT, podemos usar a função NEWID() que retorna um uniqueidentifier, que representa um GUID (Global Unique Identifier), ou identificador global único.

Se executarmos select newid() repetidamente, verificamos que novos identificadores únicos são gerados a cada execução.

Vamos implementar um exemplo para entendermos melhor o uso da função.

Primeiro, vamos criar uma tabela temporária com alguns registros fictícios:

CREATE TABLE #temp (
Id INT IDENTITY(1,1),
Nome VARCHAR(10)
)

INSERT #temp (Nome)
VALUES ('Rodrigo')

INSERT #temp (Nome)
VALUES ('Rafael')

INSERT #temp (Nome)
VALUES ('Wanderley')

INSERT #temp (Nome)
VALUES ('Daniel')

INSERT #temp (Nome)
VALUES ('Evelise')

INSERT #temp (Nome)
VALUES ('Luisa')

INSERT #temp (Nome)
VALUES ('Carolina')

INSERT #temp (Nome)
VALUES ('Amanda')

INSERT #temp (Nome)
VALUES ('Marley')


Agora, vamos executar repetidamente os script:

select * from #temp
order by newid()


Podemos perceber que a ordenação dos resultados, é diferente a cada nova execução do script.

Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!