SQL 生成随机编号

SQL-CODEALTER FUNCTION [dbo].[f_RANDBH](@BHLen int)
RETURNS varchar(50)
AS
BEGIN
 DECLARE @r varchar(50)
 IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
  SET @BHLen=10
 SELECT @r=CHAR(
   CASE WHEN SUBSTRING(re,1,1)>5 THEN 97 ELSE 65 end
   +(SUBSTRING(re,1,1)
   +SUBSTRING(re,2,1)
   +SUBSTRING(re,3,1))%26)
  +CHAR(
   CASE WHEN SUBSTRING(re,4,1)>5 THEN 97 ELSE 65 end
   +(SUBSTRING(re,4,1)
   +SUBSTRING(re,5,1)
   +SUBSTRING(re,6,1))%26)
 FROM v_RAND
 WHILE LEN(@r)<@BHLen
  SELECT @r=@r+CHAR(
    CASE WHEN SUBSTRING(re,1,1)>5 THEN 97 ELSE 65 end
    +(SUBSTRING(re,1,1)
    +SUBSTRING(re,2,1)
    +SUBSTRING(re,3,1))%26)
   +CHAR(
    CASE WHEN SUBSTRING(re,4,1)>5 THEN 97 ELSE 65 end
    +(SUBSTRING(re,4,1)
    +SUBSTRING(re,5,1)
    +SUBSTRING(re,6,1))%26)
  FROM v_RAND
 SET @r = LEFT(@r,@BHLen)
 SET @r = @r+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),':',''),'-',''),' ','') 
 RETURN(@r)
END
--执行示例
SELECT [dbo].[f_RANDBH](NULL)SELECT [dbo].[f_RANDBH](NULL)
--执行结果
DWihcunCUz20090828081450D大部分代码转载邹建SQL教程,自己也根据需要略有一点点改动!

转载于:https://www.cnblogs.com/myssh/archive/2009/08/28/1555530.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你生成这个SQL语句。请注意,因为我是一个AI语言模型,我并没有实际的数据库,我只能帮你生成SQL语句的文本,你需要将其复制并在你的数据库中执行。 以下是生成学生表的SQL语句,其中使用了MySQL的随机数函数来生成随机的学生信息: ```SQL CREATE TABLE student ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT(11) NOT NULL, gender VARCHAR(10) NOT NULL, grade VARCHAR(20) NOT NULL, PRIMARY KEY (id) ); INSERT INTO student (name, age, gender, grade) SELECT CONCAT('student', LPAD(ROW_NUMBER() OVER(), 4, '0')) AS name, FLOOR(RAND() * 10 + 15) AS age, IF(RAND() > 0.5, 'male', 'female') AS gender, CONCAT('Grade ', FLOOR(RAND() * 6) + 1) AS grade FROM (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) a CROSS JOIN (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) b; ``` 这个SQL语句会创建一个名为`student`的表,其中包含编号、姓名、年龄、性别和年级等信息。同时,使用`INSERT INTO`和`SELECT`语句来生成随机的学生信息,其中姓名是以`student`开头并加上一个四位数编号,年龄在15-24岁之间随机生成,性别是随机生成的男性或女性,年级是从1到6随机生成的。 希望这个SQL语句能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值