In our company, we have project for "Quiz management". On quiz page, we have to fetch 10 random question from large table. To get a random question, you might be tempted to select the top n rows from the table. However, this question is not random. The first n rows are not necessarily representative of the whole table. After few searches on MSDN, we found wonderfull solution. The solution here is the NEWID function, which generates a
globally unique identifier (GUID) in memory for each row. By definition,
the GUID is unique and fairly random; so, when you sort by that GUID
with the ORDER BY clause, you get a random ordering of
the rows in the table.
For that we use bellow query, which generate 10 random question each time. For testing we run them 3 times and code as per bellow.
Code :
For that we use bellow query, which generate 10 random question each time. For testing we run them 3 times and code as per bellow.
Code :
SELECT TOP 10 * FROM questions ORDER BY NEWID();
