首先我上了百度和csdn上搜索了rand()函数
http://topic.csdn.net/u/20100119/20/3A4C7265-54D1-429C-AF5C-BA46C89A0463.html#r_62847622
csdn上的大神们回了贴但是我看不懂,新鸟水平不够所谓的
SELECT RAND()
生成0到1的随机数是什么意思??
还有
SELECT RAND(2)
SELECT RAND()*2有什么区别?我提问的一堆其实最终就是为了弄清这一句代码SELECT @r=RAND((DATEPART(yy, GETDATE()) * 100000 )+ select( DATEPART(mm, GETDATE()) * 1000 )
+ DATEPART(dd, GETDATE()) )
set @tempStr=convert(char(10),@r)那位帅哥美女帮忙解决,小弟永远记住你们的Id(*^__^*) 嘻嘻……
http://topic.csdn.net/u/20100119/20/3A4C7265-54D1-429C-AF5C-BA46C89A0463.html#r_62847622
csdn上的大神们回了贴但是我看不懂,新鸟水平不够所谓的
SELECT RAND()
生成0到1的随机数是什么意思??
还有
SELECT RAND(2)
SELECT RAND()*2有什么区别?我提问的一堆其实最终就是为了弄清这一句代码SELECT @r=RAND((DATEPART(yy, GETDATE()) * 100000 )+ select( DATEPART(mm, GETDATE()) * 1000 )
+ DATEPART(dd, GETDATE()) )
set @tempStr=convert(char(10),@r)那位帅哥美女帮忙解决,小弟永远记住你们的Id(*^__^*) 嘻嘻……
解决方案 »
- SQL语句
- 关于一个搜索的问题
- 为什么必须修改字段属性为varchar才可以?
- 操作系统XP Professional下装SQL Server个人版好还是开发版好?
- Mysql
- 排序问题,求助,扣老壳扣了几小时了,还是扣不出很合理的排序方法
- 请问这样改表名不对ALTER TABLE 表名1 TO 表名2 ,应该怎样改
- 菜鸟问题。过程如果不指定返回值。返回的是什么?
- how to insert a picture in sql server (query analyzer)
- 一个关于对插入数据进行验证的问题!
- 高手帮忙合并二条SQL语句为一句。
- SQL Server 2008 R2各个版本对比中的“可用最大存储量”“数据库最大规模”分别是什么意思
+ DATEPART(dd, GETDATE()) )
SELECT DATEPART(yy, GETDATE())
SELECT DATEPART(mm, GETDATE())
SELECT DATEPART(dd, GETDATE())
--2.
SELECT DATEPART(yy, GETDATE())* 100000
SELECT DATEPART(mm, GETDATE())* 1000
SELECT DATEPART(dd, GETDATE())
--3
SELECT RAND(DATEPART(yy, GETDATE())* 100000)
SELECT RAND(DATEPART(mm, GETDATE())* 1000)
SELECT RAND(DATEPART(dd, GETDATE()))
--4.
SELECT RAND((DATEPART(yy, GETDATE()) * 100000 )+ DATEPART(mm, GETDATE()) * 1000
+ DATEPART(dd, GETDATE()) )
SELECT RAND()*2的区别呢?
+ DATEPART(ms, GETDATE()) )
提供种子值的整数表达式(tinyint、smallint 或 int)。2
1.如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。
2.对于指定的种子值,返回的结果始终相同。
--实例
SELECT RAND(100), RAND(), RAND()
这个代表 系统会返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。
如0.451838857702612、0.707365088352935、
每次执行都会随机产生一个随机的值。2.select rand(N)
这里的N代表 int 类型的整数 1、2、3、4、5...
这样的写法就是Sql联机丛书里面的
------------------------------
语法
RAND ( [ seed ] )
参数
seed
可以隐式转换为 int 的整数表达式,给出种子或起始值。
------------------------------
rand()括号里面的值叫做随机种子,当我们给函数指定随机种子时函数的返回值就不会改变了
如:执行 select rand(5) 那么系统的返回值 始终是 0.713666525097956
只要随机种子改变函数的返回值才能改变 select rand(6)、select rand(7)、select rand(N)
函数就会返回不同的值了。
3.select rand()*N
与1.同理 系统会返回一个介于 0 到 N(不包括 0 和 N)之间的伪随机 float 值。
如 select rand() *5 你执行的话 你会发现返回 0.137108582083759、2.66476830745867、3.32893630948462....
因为没有指定随机种子所以每次返回的值都不同。
还有就是,当初我纠结在,系统是通过什么算法来返回这些数字的,如果我知道了算法就可以然系统返回我先要指定范围的值 比如什么1~10啊 什么1~100 啊什么的
但是其实不用知道算法,我们就知道会返回一个随机值就可以了
如果想返回一个指定范围的随机数 参见4楼的
http://wenku.baidu.com/view/e62e91eb172ded630b1cb6ec.html好了吧,我用最通俗最基础的方式来总结了,希望有类似问题的童鞋,通过搜索引擎能看到!
结贴 ~我希望也能给自己分 ~~~^_^~~~