各种数据库取随机N条记录的方法
DB2
SELECT *
SELECT *
FROM mytable
ORDER BY rand() fetch first 10 rows only
MySQL
SELECT *
MySQL
SELECT *
FROM mytable
ORDER BY rand() limit 10
PostgreSQL
SELECT *
ORDER BY rand() limit 10
PostgreSQL
SELECT *
FROM mytable
ORDER BY random() limit 10
Oracle
SELECT *
FROM (
SELECT *
ORDER BY random() limit 10
Oracle
SELECT *
FROM (
SELECT *
FROM mytable
ORDER BY dbms_random.value()
)
WHERE rownum <= 10
ORDER BY dbms_random.value()
)
WHERE rownum <= 10
注:dbms_random包需手动安装
SQL Server
SELECT TOP 10 *
SQL Server
SELECT TOP 10 *
FROM mytable
ORDER BY newid()
ORDER BY newid()
各种数据库取前N条记录的方法
1. orACLE
Select * FROM TABLE1 Where ROWNUM<=N
2. INFORMIX
Select FIRST N * FROM TABLE1 where 1=1
3. DB2
Select * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM Where ROWNUM<=N
或者
Select COLUMN FROM TABLE where 1=1 FETCH FIRST N ROWS ONLY
4. SQL SERVER
Select TOP N * FROM TABLE1 where 1=1
or
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
5. SYBASE
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
6. MYSQL
Select * FROM TABLE1 where 1=1 LIMIT N
7. FOXPRO
Select * TOP N FROM TABLE orDER BY COLUMN
8. ACCESS
Select TOP N * FROM TABLE1 where 1=1
Select * FROM TABLE1 Where ROWNUM<=N
2. INFORMIX
Select FIRST N * FROM TABLE1 where 1=1
3. DB2
Select * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM Where ROWNUM<=N
或者
Select COLUMN FROM TABLE where 1=1 FETCH FIRST N ROWS ONLY
4. SQL SERVER
Select TOP N * FROM TABLE1 where 1=1
or
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
5. SYBASE
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
6. MYSQL
Select * FROM TABLE1 where 1=1 LIMIT N
7. FOXPRO
Select * TOP N FROM TABLE orDER BY COLUMN
8. ACCESS
Select TOP N * FROM TABLE1 where 1=1