Ëæ»úÑ¡ÔñÐеÄ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.
Ïà¹ØÎĵµ£º
1£©wwµÄË㷨ΪÿÄê1ÔÂ1ÈÕΪµÚÒ»ÖÜ¿ªÊ¼£¬date+6ΪÿһÖܽáβ
¡¡¡¡ÀýÈç20050101ΪµÚÒ»ÖܵĵÚÒ»Ì죬¶øµÚÒ»ÖܵÄ×îºóÒ»ÌìΪ20050101+6=20050107
¡¡¡¡¹«Ê½ ÿÖܵÚÒ»Ìì £ºdate + ÖÜ * 7 - 7
¡¡¡¡Ã¿ÖÜ×îºóÒ»Ì죺date + ÖÜ * 7 - 1
2£©iwµÄË㷨ΪÐÇÆÚÒ»ÖÁÐÇÆÚÈÕËãÒ»ÖÜ£¬ÇÒÿÄêµÄµÚÒ»¸öÐÇÆÚһΪµÚÒ»ÖÜ£¬
¡¡¡¡ ÀýÈç20050101Î ......
select * from test where rownum <=10 ÏÂÃæÊǹØÓÚrownumµÄ½éÉÜ ================================ RownumºÍrow_number() over()µÄʹÓà ROWNUMÊÇOracle´Ó8¿ªÊ¼ÌṩµÄÒ»¸öαÁУ¬ÊǰÑSQL³öÀ´µÄ½á¹û½øÐбàºÅ£¬Ê¼ÖÕ´Ó1¿ªÊ¼£¬³£¼ûµÄÓÃ;¾ÍÊÇÓÃÀ´·ÖÒ³Êä³ö. ±ÈÈç SELECT * from torderdetail a WHERE ROWNUM <= 10 ÕâÌõÓï¾ä¾ ......
ÏÖÔںܶàÍøÕ¾¶¼ÌṩÁËÕ¾ÄÚµÄËÑË÷¹¦ÄÜ£¬Óеĺܼòµ¥ÔÚSQLÓï¾äÀï¼ÓÒ»¸öÌõ¼þÈ磺where names like ‘%words%’¾Í¿ÉÒÔʵÏÖ×î»ù±¾µÄËÑË÷ÁË¡£
ÎÒÃÇÀ´¿´¿´¹¦ÄÜÇ¿´óÒ»µã£¬¸´ÔÓÒ»µãµÄËÑË÷ÊÇÈçºÎʵÏֵģ¨ÔÚSQL¡¡£Ó£Å£Ò£Ö£Å£Ò£²£°£°£¯£²£°£°£µÍ¨¹ý´æ´¢¹ý³ÌʵÏÖËÑË÷Ëã·¨£©¡£
ÎÒÃÇ ......
ÔÚ³ÌÐòÖÐÓÐЩ²éѯÓï¾äÏà¶Ô½Ï³¤£¬¿ÉÒÔ½«Óï¾äµ¥¶ÀдÔÚÒ»¸öXXX.sqlÎļþÖУ¬ÔÚ³ÌÐòÖжÁÈ¡SQLÎļþ
¾ßÌåÉæ¼°µ½
import java.io.File;
import org.apache.commons.io.FileUtils;
import java.net.URL;
URL resourceUrl = XXXX.class.getClassLoader().getResource(SQL_PATH+sqlName);//SQL_PATH¾ßÌåSQLÎļþ´æÔÚ·¾¶£¬sqlName¼ ......
Êý¾Ý¿âµÄÐÔÄܲâÊÔ¿ÉÒÔ°ïÖúÄãÌáǰ֪µÀÄãµÄϵͳµÄ¸ºÔØÄÜÁ¦£¬¿ÉÒÔ°ïÖúÄã¸Ä½øÏµÍ³µÄʵʩ»òÉè¼Æ£¬¿ÉÒÔ°ïÖúÄãÈ·¶¨Ò»Ð©Éè¼ÆºÍ±à³ÌÔÔò. µ«ÊÇ£¬ÕâÀïÃæÒ²ÓÐÏÝÚå. Èç¹û²»Ð¡ÐÄ£¬Äã»á×Ô¼º°Ñ×Ô¼ºÏݽøÈ¥£¬È´×îÖÕ²»Ã÷°×ÊÇʲôÔÒò. ÕâÀÎÒÄÃһλÏÈÉúΪÀý£¬À´¿´¿´ËûÔõô×Ô¼º°Ñ×Ô¼º¸ãºýÍ¿µÄ.
×î½ü, ÏëÆðÔÚ´æ´¢¹ý³ÌÖо¿¾¹ÊÇʹÓÃÁÙʱ±í»¹ÊÇÊ ......