天天看點

SQL 十位随機數(大小寫字母+資料)

SQL 十位随機數(大小寫字母+資料)

USE [TEST]

GO

/ Object: UserDefinedFunction [dbo].[RANDTENNUMS] Script Date: 2019/7/23 15:40:16 **/

SET ANSI_NULLS ON

SET QUOTED_IDENTIFIER ON

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

--随機字母(大寫去除大寫的O)

WHILE char(65+ceiling(@RANDS * 25)) = 'O'

END

SELECT @SerialNumber=@SerialNumber+char(65+ceiling(@RANDS * 25))

else if @flag=2

--随機字母(小寫去除小寫的o)

WHILE char(97+ceiling(@RANDS * 25)) = 'o'

select @SerialNumber=@SerialNumber+char(97+ceiling(@RANDS * 25))

end

else begin

--随機數字 1至9的随機數字(整數)

WHILE cast(ceiling(@RANDS * 9) as varchar(1)) = '0'

select @SerialNumber=@SerialNumber+cast(ceiling(@RANDS * 9) as varchar(1))

--進行下一個循環

SET @i=@i+1

RETURN @SerialNumber;

原文位址

https://www.cnblogs.com/hEnius/archive/2019/07/23/11232471.html