生成1千万个随机串号9位英文字母

原来问题:
请问一下,在SQL中怎么来做可以快速生成1千万个9位英文(大写)随机不重复的号码,非常着急,谢谢啦。

自己写的一个解决方法:
DECLARE   @i   int  
CREATE   TABLE  #AZ(X  nchar ( 1 ))
SET   @i = 65
WHILE    @i <= 90
BEGIN
INSERT   INTO  #AZ  SELECT   CHAR ( @i )
SET   @i = @i + 1
END
SELECT   TOP   10000000   
A.X
+ B.X + C.X + D.X + E.X + F.X + G.X + .H.X + I.X  AS  X  INTO  #T1
FROM  
 (
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID () DESC AS  A
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID ()) AS  B
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID () DESC AS  C
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID ())  AS  D
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID () DESC AS  E
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID ())  AS  F
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID () DESC AS  G
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID ())  AS  H
,(
SELECT   TOP   32  X  FROM  #AZ  ORDER   BY   NEWID ()  DESC AS  I
WHERE  A.X <> B.X  AND  A.X <> C.X  AND  A.X <> D.X  AND  A.X <> E.X   AND  A.X <> F.X  AND  A.X <> G.X  AND  A.X <> H.X  AND  A.X <> I.X  
AND  B.X <> C.X  AND  B.X <> D.X  AND  B.X <> E.X  AND  B.X <> F.X  AND  B.X <> G.X  AND  B.X <> H.X  AND  B.X <> I.X  
AND  C.X <> D.X  AND  C.X <> E.X  AND  C.X <> F.X  AND  C.X <> G.X  AND  C.X <> H.X  AND  C.X <> I.X
AND  D.X <> E.X  AND  D.X <> F.X  AND  D.X <> G.X  AND  D.X <> H.X  AND  D.X <> I.X
AND  E.X <> F.X  AND  E.X <> G.X  AND  E.X <> H.X  AND  E.X <> I.X
AND  F.X <> G.X  AND  F.X <> H.X  AND  F.X <> I.X
AND  G.X <> H.X  AND  G.X <> I.X
AND  H.X <> I.X
-- 执行使用 1分20秒
PRINT   GETDATE ()
-- 查询数据未测,因为电脑慢,呵呵
--
SELECT * FROM #T1
PRINT   GETDATE ()
DROP   TABLE  #AZ,#T1

要是哪位朋友想到更好的方法可以写出,大家一起分享!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值