`

sql server的随机函数newID()和RAND()

阅读更多
sql server的随机函数newID()和RAND()


SELECT * FROM Northwind..Orders ORDER BY NEWID()
--随机排序

SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID()
--从Orders表中随机取出10条记录


示例

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 server中随机函数NewID()和Rand()

    在SQL Server中,随机函数有rand(),NewID(),其中rand是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符。 SELECT * FROM Northwind..Orders ORDER BY NEWID() –随机排序 SELECT TOP 10 * ...

    sqlserver常用函数及个人收藏

    这些函数是SQL Server中基础但非常实用的部分,了解并熟练掌握它们对于数据库管理、数据查询和应用程序开发至关重要。通过深入理解和实践,你可以编写出更加高效和精确的SQL语句,从而提升工作效率。

    SQL Server中的RAND函数的介绍和区间随机数值函数的实现

    本文主要探讨了如何利用SQL Server的内置函数RAND、CHECKSUM和NEWID来实现这一目标。 RAND()函数是SQL Server中用于生成随机浮点数的工具。它能够返回一个介于0(包括)和1(不包括)之间的浮点数。如果你需要生成...

    sql server 2000 函数 希望有用 分享是真理!·

    在SQL Server 2000中,函数是用于执行特定计算或操作的预定义过程,它们...在《SQLServer2000常用函数大全(经典)》这份资料中,你应该能找到更多关于这些函数的详细解释和示例,帮助你进一步巩固和扩展这方面的知识。

    SQL Server中生成随机浮点数

    在SQL Server中,生成随机浮点数是一种常见的需求,特别是在数据填充、测试或者模拟真实世界情境时。浮点数的随机生成可以帮助我们创建无规律的数据,避免数据的重复性,提高数据的多样性。这里我们将详细探讨如何在...

    SQLServer2000常用函数大全.rar

    总之,"SQLServer2000常用函数大全"这个资源是学习和提升SQL Server 2000操作技能的重要参考资料,它包含了数据库管理中不可或缺的工具,对于SQL开发者和数据库管理员而言,理解和掌握这些函数将极大地提高工作效率...

    sqlserver2000函数大全

    这个压缩包文件"sqlserver2000函数大全"很可能包含了关于SQL Server 2000中各种内置函数的详细资料,帮助用户深入理解和使用这些功能强大的工具。 SQL Server 2000中的函数主要分为以下几类: 1. **数值函数**: ...

    SQLserver2000函数大全

    在SQL Server 2000中,函数是用于处理数据并返回单一值的预定义过程。它们是数据库查询和编程的重要组成部分,可以帮助我们执行各种计算、转换和逻辑操作。本篇将详细介绍SQL Server 2000中的主要函数类型及其用途。...

    sql随机查出数据作调考用

    其中SQL Server和MySQL分别提供了`NEWID()`和`RAND()`函数来实现随机排序;而在Access中,则更多地依赖于`Rnd()`函数,并且需要通过额外的技巧(如结合当前时间)来增强随机性。通过对这些方法的学习和实践,我们...

    SQLServer2000常用函数大全

    在SQL Server 2000中,函数是执行特定计算或操作的重要工具,它们极大地提升了查询和数据处理的效率。本篇文章将详细讲解SQL Server 2000中的一些常用函数,帮助你更好地理解和运用这些功能。 1. **字符串函数**: ...

    SQL server 随机数函数

    总的来说,理解并熟练运用`RAND()`和`NEWID()`函数,可以极大地增强你在SQL Server中的数据处理能力,无论是用于测试、数据模拟还是其他需要随机性的任务。希望这些信息能对你有所帮助,无论是作为SQL Server的新手...

    SQL Server里如何随机记录集

    在SQL Server中,随机选取记录...总的来说,SQL Server提供了多种方式来随机化记录集,`NEWID()`和`RAND()`函数是其中常用的方法。理解它们的工作原理和适用场景,可以帮助你在实际工作中更有效地处理随机数据的需求。

    SQL常用函数大全

    这些函数在SQLServer2000中的应用,使得用户能够更高效地管理和操作数据库中的数据。了解并熟练掌握这些函数,对于数据库管理员和开发人员来说至关重要,因为它们极大地提高了SQL查询的灵活性和实用性。无论是在简单...

    SQL-Server与MySQL差别

    在 **SQL Server** 中,可以使用 `NEWID()` 结合 `ORDER BY NEWID()` 来随机排序记录,然后通过 `TOP` 获取前 N 条记录: ```sql SELECT TOP 10 * FROM TableName ORDER BY NEWID(); ``` 在 **MySQL** 中,则是使用 ...

    Delphi连接SQL随机显示数据库中的记录..rar

    这个查询将返回`Employees`表的所有记录,但它们的顺序是基于系统生成的唯一标识符(NEWID()在SQL Server中,或者RAND()在某些其他数据库系统中),从而实现随机排序。 4. **绑定数据**:在Delphi中,可以通过...

    ms sql语句怎么样对随机记录进行排序

    在SQL Server中,实现随机排序的主要方法是通过`NEWID()`函数。`NEWID()`函数返回一个随机生成的唯一标识符(GUID),每次调用时都会产生不同的值。因此,将其用于`ORDER BY`子句中可以实现记录的随机排序。 ### ...

    如何从SQL Server表中选择随机行

    在SQL Server数据库管理中,有时候我们需要从一个大型表中选取一部分数据进行测试、演示或分析,而这些数据并不需要是连续的或者特定顺序的,此时选取随机行就显得尤为重要。"如何从SQL Server表中选择随机行"这个...

    SQL批量录入数据到数据库中

    SQL Server提供了一些内置函数,如`NEWID()`生成唯一标识符,`RAND()`生成随机数等,但它们可能无法满足复杂的随机数据需求。此时,可以借助一些第三方工具或库,比如T-SQL脚本生成器或者开源项目如`Faker.NET for ...

Global site tag (gtag.js) - Google Analytics