SQL Server rand()+while循环的使用
一、sql产生随机数使用Rand(),结果是类似于这样的随机小数:0.677416415256926
eg:
SELECT Rand()
下面四种方法的区别(N代表一个随意的实数):
SELECT FLOOR(RAND()*N) ---生成的数是这样的:12.0
SELECT CAST(FLOOR(RAND()*N) AS INT) ---生成的数是这样的:12
SELECT CEILING(RAND()* N) ---生成的数是这样的:12.0
SELECT CAST(CEILING(RAND()* N) AS INT) ---生成的数是这样的:12
注解:
前两种方法:生成的随机数在0至N-1之间;
后两种方法:生成的随机数在1至N之间。
FLOOR函数返回小于或等于所给数字表达式的最大整数。
CEILING函数返回大于或等于给数字表达式的最小整数。
FLOOR和CFILING返回的数据类型都与输入的数字表达式的数据类型相同。
二、构造数据的时候会用到一次性插入多条数据,SQL Server可以通过设置while来循环插入多条数据。如下:
DECLARE @id int
DECLARE @price VARCHAR(6)
DECLARE @loopnum int
SET @id = 1
SET @price = '1.00'
SET @loopnum = 100
WHILE @id <= 100
BEGIN
INSERT INTO td_price(id,price) values(@id,@price)
SET @id = @id + 1
SET @price = CONVERT(VARCHAR(6),FLOOR(RAND()*9)) + '.' + CONVERT(VARCHAR(6),FLOOR(RAND()*9)) ---构造价格,随机生成小数
END
页:
[1]