随机SQL函数示例

数据库 SQL Server
随机函数NEWID在SQL数据库中是比较常见的函数了,下面就为您举一个使用NEWID函数的例子,希望对您学习NEWID函数有所启迪。

随机SQL函数在SQL数据库中有着广泛应用,下面就以实例的方式为您介绍随机SQL函数的使用,供您参考,希望对您学习随机SQL函数能有所帮助。

A.对变量使用 NEWID 函数
以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。在测试 uniqueidentifier 数据类型变量的值之前,先输出该值。
-- Creating a local variable with DECLARESET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is '+ CONVERT(varchar(255), @myid)
下面是结果集:
Value of @myid is 6F9619FF-8B86-D011-B42D-00C04FC964FF
注意:
NEWID 对每台计算机返回的值各不相同。所显示的数字仅起解释说明的作用。

随机函数:rand()
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:

1、
A:select  floor(rand()*N)  ---生成的数是这样的:12.0
B:select cast( floor(rand()*N) as int)  ---生成的数是这样的:12

2、
A:select ceiling(rand() * N)  ---生成的数是这样的:12.0
B:select cast(ceiling(rand() * N) as int)  ---生成的数是这样的:12

其中里面的N是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
对于这个区别,看SQL的联机帮助就知了:
------------------------------------------------------------------------------------

比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的***整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
----------------------------------------------------------------------------------
现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^

另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
select top N *  from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数.

 

 

【编辑推荐】

字符转换SQL函数

创建SQL函数的实例

SQL函数取得系统日期

sql函数遍历BOM表的方法

判断闰年的SQL函数

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-09 13:43:48

SQL函数NEWID

2010-09-06 16:52:17

SQL函数

2010-09-09 09:49:18

SQL函数存储过程

2010-09-06 17:40:59

SQL函数

2010-07-16 09:00:08

SQL Server查

2010-09-08 16:17:37

SQL循环语句

2010-05-27 13:26:20

MySQL日期时间函数

2010-09-25 16:37:33

SQL动态查询

2010-11-29 10:53:14

Sybase日期函数

2010-09-27 14:30:16

SQL2000创建角色

2010-09-16 13:22:03

Sql Server日

2010-09-25 14:59:54

SQL语句

2010-04-15 14:12:20

Oracle 系统操作

2010-02-05 10:23:09

C++基本函数

2010-09-17 09:35:51

SQL中if语句

2010-02-01 11:22:09

C++虚函数

2011-03-30 11:01:13

C语言随机

2010-03-18 09:33:46

python随机数模块

2010-09-16 09:35:17

SQL函数

2024-02-28 08:37:28

Lambda表达式Java函数式接口
点赞
收藏

51CTO技术栈公众号