博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 十位随机数(大小写字母+数据)
阅读量:5058 次
发布时间:2019-06-12

本文共 1345 字,大约阅读时间需要 4 分钟。

USE [TEST]

GO
/****** Object: UserDefinedFunction [dbo].[RANDTENNUMS] Script Date: 2019/7/23 15:40:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[RANDTENNUMS]()
returns varchar(10)
as
begin
DECLARE @i int
DECLARE @flag int
DECLARE @SerialNumber nvarchar(20)
DECLARE @RANDS Numeric(38,38)
--初始化设定
SET @i=1
SET @SerialNumber = ''

--生成10位随机码

WHILE @i<11
BEGIN
--设置随机,这个随机会选择字母(大小写)还是数字
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
SET @flag=ceiling(@RANDS *3)

IF @flag=1

BEGIN
--随机字母(大写去除大写的O)
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
WHILE char(65+ceiling(@RANDS * 25)) = 'O'
BEGIN
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
END
SELECT @SerialNumber=@SerialNumber+char(65+ceiling(@RANDS * 25))
END
else if @flag=2
begin
--随机字母(小写去除小写的o)
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
WHILE char(97+ceiling(@RANDS * 25)) = 'o'
BEGIN
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
END
select @SerialNumber=@SerialNumber+char(97+ceiling(@RANDS * 25))
end
else begin
--随机数字 1至9的随机数字(整数)
WHILE cast(ceiling(@RANDS * 9) as varchar(1)) = '0'
BEGIN
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
END
SELECT @RANDS = RAND_A FROM [dbo].[VW_RAND]
select @SerialNumber=@SerialNumber+cast(ceiling(@RANDS * 9) as varchar(1))
end

--进行下一个循环

SET @i=@i+1
END
RETURN @SerialNumber;
END

转载于:https://www.cnblogs.com/hEnius/p/11232471.html

你可能感兴趣的文章
jQuery tag标签插件
查看>>
OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作
查看>>
【转】如何管理自己?
查看>>
练习1-10 编写一个将输入复制到输出的程序,并将其中的制表符替换成\t,把回退符替换成\b,把反斜杠替换成\\,这样可以将制表符和回退符以可见的方式显示出来...
查看>>
10 个Javascript框架和丰富的UI组件
查看>>
IE11浏览器中的My97日历控件刷新后无法打开问题解决办法
查看>>
会话保持:粘滞会话
查看>>
Git免密码提交
查看>>
Android手机外置SD卡(TF卡)的获取方法
查看>>
LeetCode 132. 分割回文串 II(Palindrome Partitioning II)
查看>>
关于PHP的引用赋值
查看>>
软件工程第三次作业
查看>>
默慈金数
查看>>
24、java操作xml方法
查看>>
hdu 1879 继续畅通project
查看>>
java 使用LinkedList模拟一个堆栈或者队列数据结构
查看>>
调整GDI显示方向
查看>>
node 单个表加条件查询
查看>>
单例模式
查看>>
Sublime Text 3 绝对神器
查看>>