日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

SQL語言隨機生成字符串的幾種方法

 xinxin4312 2011-02-16
1.利用newid()產生的uniqueidentifier都是隨機且唯一的:
declare @string nvarchar(100);
set @string =cast(newid() as nvarchar(100));
select @string;
go
2.利用rand()生成隨機數字串:
declare @string nvarchar(100);
set @string =  right(str(rand(),8,6),2);
select @string;
go

3.利用rand()生成6位隨機字符串:
declare   @sql   nvarchar(400) 
select      @sql= 'select   char( '+cONVERT(NVARCHAR,CONVERT(INT,26*rand())+97)+ ')+ 
CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ 
CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ 
CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ 
CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ 
CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ') ' 
print   @sql 
EXEC(@sql) 
go

DECLARE   @Below   int 
DECLARE   @Up   int 
SELECT   @Below=65,@Up=90 
SELECT   CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 
    +CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 
    +CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 
    +CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 
    +CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 
    +CHAR(CAST(RAND()*(@Up-@Below)+@Below   AS   decimal(38,0))) 

go
SELECT   CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END))+ 
CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END))+ 
CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END))+ 
CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END))+ 
CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END))+ 
CHAR(CONVERT(INT,rand()*26)+(CASE   WHEN   RAND()*2   >    1   THEN   97   ELSE   65   END)) 
go

4.編寫可以產生隨機字符串的存儲過程:
--*********************
CREATE   VIEW   V_RAND   AS   SELECT   RAND1   =   CONVERT(INT,RAND()*26),RAND2   =   RAND()*2          
GO          
  
  
CREATE   FUNCTION   DBO.f_GetRandNum(@LEN   INT,@FLAG   INT) 
RETURNS   NVARCHAR(100) 
AS 
--@LEN   輸出字符的長度 
--@FLAG   返回值包含字符   1:大寫字母      2:小寫字母      3:大小寫字母混合 
BEGIN 
       DECLARE   @SQL   NVARCHAR(100),@RAND   INT 
       SELECT   @SQL   =    ' ' 
       IF   @LEN>100 
             SET @LEN   =   100 
  
       WHILE   @LEN>0    
       BEGIN 
             SELECT @RAND   =   RAND1 +(CASE   @FLAG   WHEN   1   THEN   65   WHEN   2   THEN   97 
                   ELSE(CASE WHEN RAND2 > 1 THEN   97   ELSE   65   END)   END) 
             FROM   V_RAND 
  
             SELECT   @SQL=@SQL + CHAR(@RAND),@LEN  = @LEN - 1 
       END 
  
       RETURN   @SQL 
END 
GO 
--調用存儲過程  
SELECT   DBO.f_GetRandNum(7,2) 

(收集自:CSDN社區(qū))

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多