Един полезен редактор добави 'Select' преди всяко изявление, но смисълът на този елемент е, че може да генерира уникални ключове за всеки ред в връщане, а не само за един елемент (за това бих използвал функцията Rand()). Например :Изберете топ 100 Rand(),* от tblExample
Ще върне една и съща произволна стойност за всичките 100 реда.
Докато:Изберете топ 100 ABS(КОНТРОЛНА СУМА(НОВИД()) % 10),* от tblexample
Ще върне различна произволна стойност между 0 и 9 на всеки ред в връщането. Така че докато select улеснява копирането и поставянето, можете да копирате логиката в оператор select, ако това е необходимото.
Това генерира произволно число между 0-9
SELECT ABS(CHECKSUM(NEWID()) % 10)
1 до 6
SELECT ABS(CHECKSUM(NEWID()) % 6) + 1
3 до 6
SELECT ABS(CHECKSUM(NEWID()) % 4) + 3
Динамичен (Въз основа на коментара на Eilert Hjelmeseths, актуализиран, за да коригира грешка (+ до -))
SELECT ABS(CHECKSUM(NEWID()) % (@max - @min - 1)) + @min
Актуализирано въз основа на коментари:
NEWID
генерира произволен низ (за всеки ред в замяна)CHECKSUM
приема стойност на низ и създава число- модул (
%
) дели на това число и връща остатъка (което означава, че максималната стойност е една по-малка от числото, което използвате) ABS
променя отрицателните резултати в положителни- след това добавете един към резултата, за да елиминирате 0 резултата (за симулиране на хвърляне на зарове)