Un editor útil agregó 'Seleccionar' antes de cada declaración, pero el objetivo de este elemento es que puede generar claves únicas para cada fila en una devolución, no solo para un elemento (para eso, usaría la función Rand()). Por ejemplo :Seleccione los 100 primeros Rand(),* de tblExample
Devolvería el mismo valor aleatorio para las 100 filas.
Mientras:Seleccione los 100 mejores ABS(CHECKSUM(NEWID()) % 10),* de tbleexample
Devolvería un valor aleatorio diferente entre 0 y 9 en cada fila de la devolución. Entonces, si bien seleccionar hace que sea más fácil copiar y pegar, puede copiar la lógica en una declaración de selección si eso es lo que se requiere.
Esto genera un número aleatorio entre 0-9
SELECT ABS(CHECKSUM(NEWID()) % 10)
1 a 6
SELECT ABS(CHECKSUM(NEWID()) % 6) + 1
3 a 6
SELECT ABS(CHECKSUM(NEWID()) % 4) + 3
Dinámico (basado en el comentario de Eilert Hjelmeseth, actualizado para corregir el error (+ a -))
SELECT ABS(CHECKSUM(NEWID()) % (@max - @min - 1)) + @min
Actualizado en base a los comentarios:
NEWID
genera una cadena aleatoria (para cada fila a cambio)CHECKSUM
toma el valor de la cadena y crea el número- módulo (
%
) se divide por ese número y devuelve el resto (lo que significa que el valor máximo es uno menos que el número que usa) ABS
cambia los resultados negativos a positivos- luego agregue uno al resultado para eliminar 0 resultados (para simular una tirada de dados)