Na první pohled složitý úkol má velmi jednoduché řešení. Tím je použití funkce NEWID() v klauzuli ORDER BY výběrového dotazu. Pro množinu vybraných záznamů se tak náhodně vygenerují jedinečné identifikátory, které po seřazení změní původní pořadí záznamů.

Z takto náhodně seřazených záznamů si pomocí funkce TOP vybereme námi požadovaný počet záznamů.

V následujícím příkladu je vidět, že vybrané záznamy jsou vypsány v jiném pořadí, než jsou uloženy v databázi. Pokud by byl dotaz spuštěn opakovaně, bude pořadí záznamů odlišné.

SQL:
SELECT * FROM lide ORDER BY NEWID();

uid jmeno    prijmeni
3   Marek              Holý               
9   Magda              Dlouhá             
1   Petr               Kos                 
7   Petr               Pan                 
8   Jan                Noha               
6   Jana               Zlá

Pokud chceme vybrat náhodné záznamy z množiny určené pomocí složitějších dotazů, je vhodné použít klauzuli ORDER BY NEWID() na co nejvyšší úrovni. Omezí se tak počet generovaných identifikátorů a tím i náročnost pro server (v uvedených příkladech je to samozřejmě jedno :) ).

SQL:
SELECT TOP 2 a.* FROM
(SELECT * FROM lide WHERE uid> 6) a
ORDER BY NEWID();

uid jmeno    prijmeni
7   Petr               Pan                 
9   Magda              Dlouhá