sql随机数】的更多相关文章

下面是一个随机函数问题,获取两位数的随机数,且不重复. 但是说明一下,这个函数有点bug,例如:两位数的函数最后能生成89个,如果将数量改成90,那么就无法生成,陷入死循环了. IF object_id(N'tempdb..#temp_Table') is not null drop table #temp_Table go ; DECLARE @j INT; ; --生成随机数的数量 SET NOCOUNT ON CREATE TABLE #temp_Table(num INT) WHILE(…
一.把数据库把某个字段更新为随机数 DECLARE @Hour INT DECLARE @Counts INT SET @Hour =DATENAME(HOUR, GETDATE()) ) BEGIN ), ) END ) BEGIN ), ) END ) BEGIN ), ) END ) BEGIN ), ) END ) BEGIN ), ) END ) BEGIN ), ) END ) BEGIN ), ) END UPDATE dbo.t_Config SET Value=Value+@C…
select FLOOR(rand()*16) 就是随机得到0到15之间的一个整数 select CEILING(rand()*15) 就是随机得到1到15之间的一个整数 FLOOR()为地板函数,取下整数 CEILING()为天花板函数,取上整数…
) as P_jsnews_id ) as P_jsnews_id) * from P_jsnews order by newid()…
在查询分析器中执行: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) ---生成的数是这…
转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手,不妨一看,相信对您学习SQL中的函数会大有帮助. 在SQL Server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬 不过还是希望老鸟们多多指教了,现在切入正题:  随机函数:rand(…
目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 缺点:无法利用索引,每次选择的时候都不同且不可预测.进行全表遍历,性能极差. 如何识别反模式:当出现以下情况时,可能是反模式 1.在SQL中,返回一个随机行速度非常慢: 2.要获取所有的记录然后随机一个.要如何增加程序可使用的内存大小? 3.有些列出现的频率比别的列要高一些,这个随机算法不是很随机.…
--循环插入一年的时间 DROP TABLE #temp CREATE TABLE #temp (date DATETIME); DECLARE @year INT ; WITH a1 AS ( SELECT CAST(RTRIM(@year)+'-01-01' AS DATETIME) date UNION ALL ,date) ,date))=@year ) INSERT #temp SELECT date FROM a1 EXCEPT SELECT date FROM #temp ) --…
https://docs.microsoft.com/en-us/sql/t-sql/functions/rand-transact-sql?view=sql-server-2017 在某一个区间内生成随机数 https://stackoverflow.com/questions/7878287/generate-random-int-value-from-3-to-6 原理,rand函数会生成一个在0到1之间的随机float数. 用这个随机数*区间范围+最小值,就得到一个区间范围内的随机数.然…
今天按照公司需求,需要做一个sql作业来对数据库定时触发,其中有个难点,就是在sql中需要在1-n中随机出来一个结果. google了半天,找到一个比较好的方式. 写下这个sql: DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT SET @Lower = 1 SET @Upper = 10 SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0) SE…
SQL> select round(dbms_random.value(10000,99999)) num from dual;…
ALTER FUNCTION [dbo].[ufn_Random] ( @A INT, @B INT ) RETURNS INT AS BEGIN /* 功能:生成随机数 */ ,) , SELECT @R=RandValue*(@A-@B)+@B FROM VW_RAND ) AS INT) RETURN(@R) END…
DECLARE @nMinimumCount INT= 1DECLARE @nMaximumCount INT= 100SELECT abs(CHECKSUM(NEWID()))%(@nMaximumCount+ 1-@nMinimumCount)+@nMinimumCount @nMinimumCount ,@nMaximumCount为指定获取随机数的最小和最大范围…
使用RAND(),结果是类似于这样的随机小数:0.615942003695649 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-…
Access: CLng(Rnd(种子数字)*1000000)   SQL Server ceiling(rand(abs(checksum(newid())))*1000000)    …
背景:想在表中随机取10条记录,让取出来的数据不重复(表中必须是有个递增列,且递增从1开始间隔为1).  数据表: CREATE TABLE testable ( id INT  IDENTITY(1,1), myname  NVARCHAR(1000), insertedTime DATETIME DEFAULT SYSDATETIME() )   表中共有100条数据,如下 省略--         1.     首先想到的是MSSQL自带的newid()   采用这种方法时,需要将表中所有…
rand() 定义: 返回从0到1之间的随机浮点值. 举例说明: select rand() as 随机数   结果如图: select cast( floor(rand()*N) as int )  --方法1 结果:20 select cast( ceiling(rand()*N) as int ) --方法2 结果:43 大致一看,这两种方法没什么区别,区别就是他们的生成随机数的范围: 方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生…
从i-j的范围内的随机数,那么公式为FLOOR(i+RAND()*(j-i+1))…
use School --指定数据库 declare @min_id int --声明整数变量@x set @min_id=(select MIN(Id) from Students) --给变量@x赋初值为当前最小的Id值 while @min_id>0 begin update Students set Age=ROUND(RAND()*100,0) where Id=@min_id --round()四舍五入把原值转化为指定小数位数 --rand()取得是随机数 默认范围为(0·1) ra…
--循环 WHILE @i<40 BEGIN …… end --随机数 SET @money=rand()*100000 例子: DECLARE @i INT DECLARE @money MONEY DECLARE @month int SET @i=1 WHILE @i<40 BEGIN SET @money=rand()*100000 SET @month=-RAND()*10 INSERT INTO Charge (ID ,Date ,ChargeTypeID ,ChargeTypeN…
--RAND(x)返回一个随机浮点值v,范围在0~1之间(即0<=v<=1.0) --若指定一个整数参数x,则它被用作种子值,使用相同的种子数将产生重复序列.如果同一种子值多次调用RAND函数,它将返回同一生成值 示例:select RAND(), RAND(), RAND(); 结果:0.664547768839536   0.0166045240927059   0.0892182701370623 --不带参数的RAND()每次产生的随即数值是不同的 select RAND(10), R…
1.生成随机实型数据 create procedure awf_RandDouble @min dec(14,2), @max dec(14,2), @result dec(14,2) output as begin set @result= cast((rand()*(@max-@min)+@min) as dec(14,2)) return @result end 2.生成随机整型数据 create procedure awf_RandInt @min int, @max int, @res…
declare @M int,@N int set @m=10 set @n=1 select top 10 cast(rand(checksum(newid()))*(@M-@N)+@n as int) from t_table…
--处理性别随机select (case when round(rand()*10,0)>5 then '男' else '女' end), --处理时间段范围内随机select dateadd(dd,round(datediff(dd,'1992-01-01','1995-01-01')*rand(),0),'1992-01-01') --添加外键ALTER TABLE [dbo].[StudnetInfo] WITH CHECK ADD CONSTRAINT [FK_StudnetInfo_…
/* select char(65+ceiling(rand()*25)) --随机字母(大写) select char(97+ceiling(rand()*25)) --随机字母(小写) select cast(ceiling(rand()*9) as varchar(1)) --随机数字 1至9的随机数字(整数) */ --declare @qq int --SET @qq=0 --while(@qq<34106) --BEGIN declare @i int declare @flag i…
declare @rnd nvarchar(50)set @rnd =''while LEN(@rnd)<20 begin set @rnd =@rnd + REPLACE ( CONVERT(nvarchar, RAND ()),'0.','') while LEFT(@rnd,1)='0' set @rnd = RIGHT (@rnd,len(@rnd)-1) endset @rnd=LEFT(@rnd ,20)select @rnd…
declare @randnum int=0declare @startnum int =0declare @endnum int=0 set @startnum = 150 set @endnum = 200 set @randnum = ROUND(((@endnum - @startnum -1) * RAND() + @startnum), 0)select @randnum…
DECLARE @i int=0;DECLARE @j decimal(9,2);DECLARE @qnum INT=1000; SET NOCOUNT ONCREATE TABLE #temp_Table(num decimal(9,2))WHILE(@i<@qnum)BEGIN  SELECT @j = convert(decimal(9,2),(RAND()*10))   --IF(NOT EXISTS(SELECT num FROM #temp_Table WHERE num=@j ))…
DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT SET @Lower = 1 SET @Upper = 10 SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0) SELECT @Result 转自:https://www.cnblogs.com/Kymo/archive/2010/11/08/1871577.html…
declare @T TABLE (id int identity(1,1),[Name] nvarchar(20), Randnum int) insert @T ([Name]) select 'A1' union all select 'A2' union all select 'A3' union all select 'A4' union all select 'A5' union all select 'A6' union all select 'A7' union all sele…