前言
想从数据库随机抽取数据,想到使用Rand()函数,记录下。
参考:SQL随机查询数据语句
SQL Server
1 2 3 4
| Select TOP N * From TABLE Order By NewID()
NewID()函数将创建一个 uniqueidentifier 类型的唯一值。上面的语句实现效果是从Table中随机读取N条记录。 Uniqueidentifier用来存储一个全局唯一标识符,即GUID。
|
Access
1 2 3 4 5
| Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * From TABLE Order BY Rnd(Len(UserName))
|
MySql
1
| Select * From TABLE Order By Rand() Limit 10
|
- 在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
1 2 3 4 5
| A:select floor(rand()*N) B:select cast( floor(rand()*N) as int)
A:select ceiling(rand() * N) B:select cast(ceiling(rand() * N) as int)
|
- 比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
PostgreSQL
1
| select * from glxt022 order by random() limit 5
|