Ëæ»úÑ¡ÔñÐеÄSQLÓï¾ä? ORACLE SQLSERVER ECT.
MySQL:
SELECT column from table
ORDER BY RAND()
LIMIT 1
PostgreSQL:
SELECT column from table
ORDER BY RANDOM()
LIMIT 1
Microsoft SQL Server:
SELECT TOP 1 column from table
ORDER BY NEWID()
IBM DB2
SELECT column, RAND() as IDX
from table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Tim
Oracle:
SELECT column from
( SELECT column from table
ORDER BY dbms_random.value )
WHERE rownum = 1
Thanks Mark Murphy
Feel free to post other example, variations, and SQL statements for other database servers in the comments.
Ïà¹ØÎĵµ£º
Oracle
1£¬shutdownÖ®ºó£¬ÈçºÎÆô¶¯Êý¾Ý¿âʵÀý£¿
ͨ¹ýCMDÃüÁî·û sqlplus "sys/password as
sysdba"£¬»áÁ¬µ½Ò»¸ö¿ÕÏÐʵÀý£¬ÕâÑù¿ÉÔÙÓÃstartupÃüÁî¡£
2£¬×°ÁËÊý¾Ý¿âÖ®ºó£¬ÓÃÁËshutdown£¬ºóÓÃÁËstartupµÈÆô¶¯Ö®ºó£¬¿ÉÓÃsql
plusºÍÍøÒ³·½Ê½Á¬oracle¡£µ«ÓÃjdbcÁ¬½Ó³ö´í£¿
ÊǼàÌýÆ÷ûÆô¶¯£ºD:\oracle\product\10.1.0\Db_1\ ......
oracle Êý¾Ý¿âµÄά»¤
¿ì¹ýÄêÁË£¬¸÷¼Ò¹«Ë¾¶¼Òª×¼±¸·Å¼ÙÁË£¬¸ø×Ô¼ºµÄÊý¾Ý¿â×ö¸öÌå¼ì°É£¬Ð´¸ö±¨¸æÖ®ÀàµÄ£¬ºÇºÇ¡£
¿´Á˸ö±ðÈËдµÄ ÏÈÄÃÀ´´æ×Å ÓпÕ×Ô¼º±à¸ö¡£
ÔØ×ÔoracleÖÐÎļ¼ÊõÂÛ̳¡£´ÓÕûÌåÉϽéÉÜÁËÒ»¸ödbaµÄÖ°ÔðºÍÈÎÎñµÈµÈ¡£¡¡¡¡
ORACLEÊý¾Ý¿â¹ÜÀíÔ±Ó¦°´ÈçÏ·½Ê½¶ÔORACLEÊý¾Ý¿âϵͳ×ö¶¨ÆÚ¼à¿Ø£ ......
select * from test where rownum <=10 ÏÂÃæÊǹØÓÚrownumµÄ½éÉÜ ================================ RownumºÍrow_number() over()µÄʹÓà ROWNUMÊÇOracle´Ó8¿ªÊ¼ÌṩµÄÒ»¸öαÁУ¬ÊǰÑSQL³öÀ´µÄ½á¹û½øÐбàºÅ£¬Ê¼ÖÕ´Ó1¿ªÊ¼£¬³£¼ûµÄÓÃ;¾ÍÊÇÓÃÀ´·ÖÒ³Êä³ö. ±ÈÈç SELECT * from torderdetail a WHERE ROWNUM <= 10 ÕâÌõÓï¾ä¾ ......
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
¡¡¡¡SQL·ÖÀࣺ
¡¡¡¡DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
¡¡¡¡DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
¡¡¡¡DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
¡¡¡¡Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
¡¡¡¡1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
......
Êý¾Ý¿âµÄÐÔÄܲâÊÔ¿ÉÒÔ°ïÖúÄãÌáǰ֪µÀÄãµÄϵͳµÄ¸ºÔØÄÜÁ¦£¬¿ÉÒÔ°ïÖúÄã¸Ä½øÏµÍ³µÄʵʩ»òÉè¼Æ£¬¿ÉÒÔ°ïÖúÄãÈ·¶¨Ò»Ð©Éè¼ÆºÍ±à³ÌÔÔò. µ«ÊÇ£¬ÕâÀïÃæÒ²ÓÐÏÝÚå. Èç¹û²»Ð¡ÐÄ£¬Äã»á×Ô¼º°Ñ×Ô¼ºÏݽøÈ¥£¬È´×îÖÕ²»Ã÷°×ÊÇʲôÔÒò. ÕâÀÎÒÄÃһλÏÈÉúΪÀý£¬À´¿´¿´ËûÔõô×Ô¼º°Ñ×Ô¼º¸ãºýÍ¿µÄ.
×î½ü, ÏëÆðÔÚ´æ´¢¹ý³ÌÖо¿¾¹ÊÇʹÓÃÁÙʱ±í»¹ÊÇÊ ......