Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

13
  • 8
    The second suggestion is not random. You can't predict the row that's going to be picked, but if you had to bet, you'd bet on the second row. And you'd never bet on the last row, it's the less likely to be picked whatever is the distribution of your num_value and how big your table is. Commented Nov 14, 2010 at 17:38
  • 1
    I know that usually RAND() functions are not of very high quality, but other than that can you please elaborate why the selection wouldn't be random? Commented Nov 16, 2010 at 11:43
  • 13
    The first one is WRONG in SQL Server. The RAND() function is invoked only once per query not once per row. So it always selects the first row (try it). Commented Feb 8, 2012 at 21:49
  • 3
    The second one also assumes that all of the rows are accounted for: it's possible it will choose a row that has been deleted.
    – Sam Rueby
    Commented Feb 20, 2012 at 13:56
  • 3
    @Sam.Rueby Actually, num_value >= RAND() ... limit 1 ensures that empty rows will be skipped until it finds exisiting row.
    – ghord
    Commented Jul 22, 2012 at 13:51