`
sanfeng_chow
  • 浏览: 102245 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

T-Sql 随机函数使用

阅读更多

从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()
order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的
newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了
或者
select   top   10   *,newid()   as   Random   from   ywle where   ywlename='001'   ordey   by   Random
下者效率要高些
因为newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果也是不一样的。

原理是 把所有的ID出取然后用随机函数取出其中一个,然后用这个随机取到的ID去数据库里再取出记录,所有代价有点大。

 

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的联机帮助就知了:

分享到:
评论

相关推荐

    17.函数整理(T-SQL 版).pdf

    在本文档中,我们将详细探讨在SQL Server使用的T-SQL(Transact-SQL)中,涉及到的函数的整理。这些函数被分为数学函数和字符串函数两大类,并且详细介绍了每个函数的功能以及它们的基本用法。 一、数学函数 1. 求...

    T-SQL语法集合

    T-SQL不仅包含了标准的SQL语句,如SELECT、INSERT、UPDATE和DELETE,还提供了一系列的内置函数和控制流程结构,使得开发者能够执行更复杂的数据库操作。 在T-SQL中,函数是进行数据处理的重要工具。例如: 1. `ABS...

    SQL语句(T-SQL汇总) 用T-SQL画出这些图形

    本文将重点讨论T-SQL中的基本语法、函数,以及如何利用T-SQL绘制图形。 一、T-SQL基本语法 1. 数据查询:T-SQL中最基础的部分是SELECT语句,用于从表中检索数据。例如: ```sql SELECT column1, column2 FROM table...

    T-sql 官方文档

    Transact-SQL(T-SQL)是Microsoft SQL Server和Sybase SQL Server所使用的SQL方言。T-SQL扩展了标准SQL的功能,为数据库管理和应用程序开发提供了更强大的工具。T-SQL支持一系列的数据处理功能,包括查询、更新、...

    SQL技巧全集-整理

    3. **随机函数**:在SQL中,随机函数如RAND()(在MySQL、SQL Server中)或DBMS_RANDOM.VALUE(在Oracle中)可以用于生成随机数,这在数据抽样、测试或者模拟场景中非常有用。某些数据库系统还提供ORDER BY RAND()...

    T-SQL查询技巧语句(收藏版).txt

    - 使用`ORDER BY NEWID()`或`RAND()`等函数对记录进行随机排序,再使用`TOP`进行分页查询。 6. **应用场景:** - 在数据量较大的场景下,分页查询可以有效提高查询效率和用户体验。 #### 八、更改数据库名称 **...

    T_SQL函数1

    T-SQL是SQL Server中的扩展查询语言,它包含了丰富的函数库,用于处理各种数据类型和执行各种操作。以下是对T-SQL函数的详细分类和应用的概述: 1. **聚合函数**: - `AVG()`:计算一组数值的平均值,不包括NULL值...

    sqlserver 函数大全

    函数调用的方式都是相同的:Result=Function() 在 T-SQL 中,一般用 SELECT 语句来返回值。如果需要从查询中返回一个值,就可以把 SELECT 当成输出运算符,而不用使用等号:SELECT Function() 参数表示输入变量或者...

    SQL常用函数汇总(比较详细)

    SQL 语言中有多种类型的函数,可以按照不同的分类方式来分类,下面将从函数类别、聚合函数、转换函数、加密函数、游标函数、日期和时间函数、数学函数、元数据函数、排名函数、行集函数、安全函数、字符串函数、系统...

    经典SQL脚本大全

    │ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql │ │ 8.1.5 删除节点处理的通用存储过程.sql │ │ 8.1.5 移动节点处理的通用存储过程.sql │ │ 8.2.2 树形数据层次显示处理示例.sql │ │ 8.2.2 树形数据...

    计算机软件及应用SQLPPT课件.pptx

    例如,可以使用以下T-SQL语句来展示这些函数的功能: ```sql SELECT ABS(-10), CEILING(3.8), FLOOR(3.14), POWER(2, 3), ROUND(234.2636, 2), RAND(), SIGN(-5), PI(), SQRT(9) ``` 这将返回10、4、3、8、234.26、...

    SQL Server中生成随机浮点数

    这里我们将详细探讨如何在SQL Server中生成随机浮点数,并给出一些实用的T-SQL代码示例。 首先,我们可以使用内置的`RAND()`函数来生成0到1之间的随机实数。`RAND()`函数每次调用会返回一个不同的浮点数,但这个...

    SQL单元8 测试和事务.pdf

    在任务一的具体实施中,演示了如何利用循环和随机函数生成1000条记录并插入到loginuser表中。通过声明变量、设置循环和随机选取字符串,可以自动生成具有随机性的用户名和密码,并将它们插入到对应的字段中。 任务...

    (完整)SQL函数使用大全-推荐文档.pdf

    根据函数的类别和描述,我们可以将 SQL 函数分为多个类别,包括聚合函数、配置函数、转换函数、加密函数、游标函数、日期和时间函数、数学函数、元数据函数、排名函数、行集函数、安全函数、字符串函数、系统函数、...

    计算机软件及应用SQLPPT学习教案.pptx

    最后,提到了T-SQL中常用的函数,尤其是数学函数,如ABS返回绝对值,CEILING和FLOOR分别返回大于或等于、小于或等于指定数值的最小整数,POWER执行幂运算,ROUND进行舍入操作,RAND生成0到1之间的随机浮点数,SIGN...

    sql server函数大全(精析)

    在T-SQL中,使用`DECLARE`声明变量,并通过`SET`或`SELECT`赋值。例如,下面的代码演示了如何使用`SET`和`SELECT`来处理变量和函数: ```sql DECLARE @MyNumber int; SET @MyNumber = 144; SELECT SQRT(@MyNumber);...

    SQL随机提取N条记录

    这里我们将深入探讨如何在SQL中实现这一功能,以满足“SQL随机抽取N条记录”的需求。 首先,我们需要理解SQL的基本查询结构。SQL查询通常包括SELECT语句,用于指定要从数据库中检索哪些列;FROM语句,指定数据源;...

    java基础 sqlserver 数据结构

    T-SQL(Transact-SQL)是SQL Server的扩展,增加了诸如流程控制、变量定义、函数等特性。在数据库设计中,索引优化、存储过程和触发器的使用是提升性能的关键。 【数据结构】 数据结构是计算机科学中的核心概念,它...

    sql常用函数

    函数的调用方式是在 T-SQL 中使用 SELECT 语句来返回值。如果需要从查询中返回一个值,就可以把 SELECT当成输出运算符,而不用使用等号:SELECT Function()。在 SQL Server 在线图书或者在线帮助系统中,函数的可选...

    我的租房网

    1. **数据库创建**:使用SQL Server Management Studio (SSMS) 的向导或T-SQL语句创建名为`house`的数据库。这涵盖了对数据库管理系统的理解和T-SQL中的`CREATE DATABASE`语句的使用。 2. **数据表创建**:通过T-...

Global site tag (gtag.js) - Google Analytics