(which gets you 10 random records)select top 10 newid() as randomrow, productid, productname from Products order by randomrow
Try changing your SQL-code to:
If that doesn't work there must somehow be an empty row in your database.select top 1 Quote, CharacterName, GameTitle, newid() as randomrow from dbo.GameQuotes order by randomrow
Update: Of course the above "solution" scales very badly; so in general do not use it if your database contains many records. It "works" by giving all your records a random GUID (itself a rather expensive function), then doing a sort on this value which is NOT indexed and therefore very slow and finally throwing everything away but the first record.
Much better is to add an extra field in your database which has a sequence-number from 1 to whatever number of records you have. Most databases can do this automatically. Then just generate a random integer in the range 1 to number of records and SELECT the record with that sequence number. Much, much faster and less strain on your database server.
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
In reply to Re: Pulling a blank SQL row, but there are no blank rows.
by CountZero
in thread Pulling a blank SQL row, but there are no blank rows.
by MatthewV
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |