`

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

SQL 
阅读更多
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之间任一整数

rand()和newid()区别:
1、rand()每个查询只调用一次,所有行会得到相同的rand值,而newid(),每一行都会单独计算newid的值


注意:
1、newid函数不保证在同一台机器上生成的新GUID大于上一次生成的GUID。如果你需要这样生成GUID,应该使用新的NEWSEQUENTIALID()函数.
2、newsequentialid() 内置函数只能在 CREATE TABLE 语句或 ALTER TABLE 语句中 'uniqueidentifier' 类型的列的 DEFAULT 表达式中使用。不能与其他运算符一起用来构成复杂的标量表达式。
分享到:
评论

相关推荐

    sql server中随机函数NewID()和Rand()

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

    SQL随机数读取,利用rand()函数

    本文将详细介绍如何在SQL中利用`RAND()`函数结合其他函数来生成随机整数,并通过一个具体的示例来展示这一过程。 #### 一、RAND()函数简介 `RAND()`是SQL中的一个内置函数,它返回一个0到1之间的随机浮点数。这个...

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

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

    SQL常用函数大全

    在SQL(Structured Query Language)中,函数是执行特定计算或操作的重要工具,广泛应用于数据查询、分析和处理。SQLServer2000虽然已经相对较老,但其提供的函数集仍然是现代SQL版本的基础。以下是一些SQLServer...

    SQL Server中生成随机浮点数

    首先,我们可以使用内置的`RAND()`函数来生成0到1之间的随机实数。`RAND()`函数每次调用会返回一个不同的浮点数,但这个范围限定在0(包括)到1(不包括)之间。如果需要生成更广泛的随机数,我们可以结合其他函数...

    sql随机查出数据作调考用

    根据提供的标题、描述、标签及部分内容,我们可以提炼出与“SQL随机查询数据”相关的知识点,主要包括以下几个方面: ### SQL 随机查询基础知识 在数据库管理中,有时我们需要从大量数据中随机抽取一部分数据用于...

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

    3. **随机显示记录**:要随机显示数据库中的记录,我们可以利用SQL的内置函数,如RAND(),配合ORDER BY子句来实现。例如,如果我们有一个名为`Employees`的表,我们可以写一个查询如下: ```sql SELECT * FROM ...

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

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

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

    - `RAND()`:生成0到1之间的随机浮点数,可与`NEWID()`结合生成随机整数。 2. **字符串函数**: - `LEN(str)`:返回字符串str的长度(不包括结尾的空格)。 - `LTRIM(str)`和`RTRIM(str)`:分别从左侧和右侧删除...

    sqlserver常用函数及个人收藏

    - `RAND()`:生成一个0到1之间的随机浮点数。 - `CHECKSUM()` 和 `BINARY_CHECKSUM()`:计算字符串或表达式的校验和。 这些函数是SQL Server中基础但非常实用的部分,了解并熟练掌握它们对于数据库管理、数据查询...

    sql常用函数

    函数可以分为多种类别,包括聚合函数、配置函数、转换函数、加密函数、游标函数、日期和时间函数、数学函数、元数据函数、排名函数、行集函数、安全函数、字符串函数、系统函数、系统统计函数和文本和图像函数等。...

    SQLServer2000常用函数大全.rar

    - `RAND()`: 生成0到1之间的随机浮点数,可与`NEWID()`结合创建唯一随机值。 2. **字符串函数**: - `LEN()`: 返回字符串的长度。 - `LEFT()`: 从字符串左侧返回指定数量的字符。 - `RIGHT()`: 从字符串右侧...

    sqlserver2000函数大全

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

    SQL 随机查询 包括(sqlserver,mysql,access等)

    在SQL Server中,我们可以使用`TOP`子句结合`ORDER BY`和`NEWID()`函数来随机选取记录。`NEWID()`函数会生成一个全局唯一的标识符(GUID),并按照这个随机生成的值对记录进行排序,从而达到随机选取的效果。例如,...

    SQLserver2000函数大全

    - `RAND()`: 生成0到1之间的随机浮点数。 - `SYSTEM_INFO()`: 返回关于SQL Server实例的信息。 以上只是SQL Server 2000函数的一小部分,实际上还有更多特定用途的函数,如聚合函数、游标函数、XML函数等。理解并...

    sql 随机抽取几条数据的方法 推荐

    总的来说,SQL Server中随机抽取数据的方法主要依赖于`ORDER BY`子句配合`NEWID()`或`RAND()`等函数,可以根据具体的需求和性能考虑选择合适的方式。在实际应用中,还需要考虑到数据的分布、查询效率以及结果的稳定...

    sql query examples.rar_Sql queries_query_random_sql

    在SQL Server中,可以结合`NEWID()`函数或者`RAND()`函数来实现随机选择。例如,`SELECT TOP n * FROM table ORDER BY NEWID()`会选择表中的n条随机记录。 7. **联接操作**: - `JOIN`语句:用于合并两个或更多表...

    SQL单元8 测试和事务.pdf

    SQL的各种函数,如聚合函数(count()、sum()、avg()、max()、min())、时间日期函数(dateadd()、datediff()、datepart()等)、数据类型转换函数(cast()、convert())、字符串函数(len()、lower()、upper()等)、...

Global site tag (gtag.js) - Google Analytics