随机数可以通过程序生成,也可以通过SQL语句生成。通过程序生成随机数时一般采用硬件的编号+时间作为种子,这种方法在瞬间插入数据库N条数据的时候会影响随机数的效果,生成很多相邻的插入值相同。所以频繁插入时可以使用SQL语句的内置函数生成随机数,可以避免此类事情发生。

Demo:

====================================================================================

C#:

            int min=0,max=10;

            Random random = new Random();             int newNumber = random.Next(min, max);   //newNumber 取值在 min和max之间(0-10)

T-SQL:

            select abs(checksum(newid()))%10    //生成随机数取值范围 0-9

or

            select cast( floor(rand()*10) as int)   //生成随机数取值范围 0-10

or

            select a+abs(checksum(newid()))%(b-a+1)   //生成随机数取值范围 a-b

or

            

            select rand()   //生成随机串

随机读取:

SQL Server:

Select TOP N * From TABLE Order By NewID()
NewID()函数将创建一个 uniqueidentifier 类型的唯一值。上面的语句实现效果是从Table中随机读取N条记录

Access:

Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)

MySql:

Select * From TABLE Order By Rand() Limit 10

postgreSQL:

select * from glxt022 order by random() limit 5  

posted on 2013-04-26 16:41  代岳强  阅读(2341)  评论(0编辑  收藏  举报