SqlServer 产生随机数

ALTER PROCEDURE [dbo].[usp_RandomNumber]
(
@Len INT = 1, --随机数位数
@Rows INT = 1 --随机笔数
)
AS
BEGIN
DECLARE @T AS TABLE([Random Number] VARCHAR(MAX))
DECLARE @L INT = 1, @R INT = 1
WHILE @R <= @Rows
BEGIN
DECLARE @RN varchar(MAX) = ‘‘
WHILE @L <= @Len --随机产生每个随数的位数
BEGIN
SET @RN = @RN + CHAR(ROUND(RAND() * 9 + 48,0))
SET @L = @L + 1
END
--如果产生相同的随机数,将不会存储
IF NOT EXISTS(SELECT [Random Number] FROM @T WHERE [Random Number] = @RN)
BEGIN
INSERT INTO @T SELECT @RN --INSERT INTO @T ([Random Number])VALUES (@RN)
SET @R = @R + 1 --记录总共产生了几笔随机数
SET @L = 1 -- 每产生完一个随机数之后,将随机数的位数初始化为1
END
END
SELECT [Random Number] FROM @T
END 

调用:

EXECUTE [dbo].[usp_RandomNumber] 8,1
时间: 2024-10-06 10:41:57

SqlServer 产生随机数的相关文章

SQLSERVER随机数 随机范围处理方法

最近在弄数据库上的随机数,真是碰的我想死的心都有了,以前都是通过PHP的rand()函数去处理有范围的随机数,但是最近在处理百万级的大量数据处理的时候发现通过PHP太慢了,迫不得已,只有寻找SQL自带的处理方法. 正文  相关函数 ROUND()  RAND()     首先我们来解析一下round()和rand()的意义.         round() 是用来取 小数点后的位数的方法,返回的值会被四舍五入.         round(a,b)   其中a代表被处理的数如20.9.55.08

SqlServer教程:经典SQL语句集锦

SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server --- 创建 备份数据的 deviceUSE

从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

原文:从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO CREATE TABLE RANDTEST(ID INT DEFAULT RAND()*100,NAME NVARCHAR(200) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID)

sqlserver 约束

sqlserver 约束 SQLServer - 约束 一.约束的分类 在SQLServer中,有3种不同类型的约束. 1.实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束. 3.参照完整性约束 如果某列的值必须与其他列的值匹配,那就意味着需要一个参照完整性约束,例如外键. 二.约束命名 在学习约束之前,首先来了解下为约束命名需要注意哪些地方. SQLServer在我们不提供名称时,会

SqlServer 函数 大全

sql server使用convert来取得datetime日期数据 sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(),

Oracle中生成随机数的函数(转载)

在Oracle中的DBMS_RANDOM程序包中封装了一些生成随机数和随机字符串的函数,其中常用的有以下两个: DBMS_RANDOM.VALUE函数 该函数用来产生一个随机数,有两种用法: 1. 产生一个介于0和1之间(不包含0和1)的38位精度的随机数,语法为: DBMS_RANDOM.VALUE RETURN NUMBER; 这种用法不包含参数. 2. 产生一个介于指定范围之内的38位精度的随机数,语法为: DBMS_RANDOM.VALUE(low IN NUMBER,high IN N

SqlServer基础复习

一.数据类型      包括整数类型(可以用来做主键)的如bit,int ,samllint,tinyint,bigint,存储的范围不同,常用的有int,bigint等:树脂类型decimal(p,s)[p为固定精度,s为宽度,使用这种数据类型时必须指定范围和精度],numeric(decimal的同义词)money(货币型,精确到货币的万分之一),smallmoney(货币型),float(近似数值型,供浮点数使用)等. 字符类型:固定长度char,nchar,可变长度varchar,国际化

SqlServer数据查询

一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的基本结构 [WITH<common_tale_expression>] SELECT select_list [INTO new_table_name] [FROM table_source][where search_condition] [GROUP BY group_by_expressio

Sqlserver通过链接服务器访问Oracle的解决办法

转自http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 一.创建sqlserver链接服务(sqlserver链接oracle)  首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1.“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接.通过该访问接口建立的链接服务器在进行查询orac