2010. 3. 11. 10:48

Table에서 Random 하게 Row를 가지고 오기

가끔 응모한 내역에서 당첨자를 자동으로 추출한다던지 할때 사용하면 좋을듯
오라클 같은 경우 정상동작을 확인하였음.
뭐, 속도에 대해선 언제나 그렇듯 그다지 보장 못함;;;;

출처는 http://www.petefreitag.com/item/466.cfm 여기 인데 외국 사이트여서 차마 영어로 '퍼가요~' 댓글은 못남기겠다능;;

하여튼, 좋은 정보를 올려주신 분께 감사..(Thanks!!! ... 하아... 영어..무리했어..)


Select a random row with MySQL:
   SELECT column FROM table
   ORDER BY RAND()
   LIMIT 1


Select a random row with PostgreSQL:
   SELECT column FROM table
   ORDER BY RANDOM()
   LIMIT 1


Select a random row with Microsoft SQL Server:
   SELECT TOP 1 column FROM table
   ORDER BY NEWID()


Select a random row with IBM DB2:
   SELECT column, RAND() as IDX 
   FROM table 
   ORDER BY IDX FETCH FIRST 1 ROWS ONLY


Select a random record with Oracle:
   SELECT column FROM
   ( SELECT column FROM table
   ORDER BY dbms_random.value )
   WHERE rownum = 1