有的朋友使用的是select left(replace(newid(),'-',''),4) 
如果只是0-9,A-F的固然很好,但我想得到0-9,A-Z的4位随机数不知该怎么做啊!?
thanks

解决方案 »

  1.   

    自己做个0-9,a-z的表,就一列,然后使用newid()
      

  2.   

    你的随机数是要怎么排列?1234,或者1SD3,还是SDGH中间的那一种的select left(replace(newid(),'-',''),4) 就可以 啊
      

  3.   


    SELECT 
        CASE CONVERT(INT, FLOOR(RAND()*10))%2
    WHEN 0 THEN CONVERT(VARCHAR(1), FLOOR(RAND()*10))
    ELSE CHAR(FLOOR(RAND()*26)+65)
    END 

    CASE CONVERT(INT, FLOOR(RAND()*10))%2
    WHEN 0 THEN CONVERT(VARCHAR(1), FLOOR(RAND()*10))
    ELSE CHAR(FLOOR(RAND()*26)+65)
    END 

    CASE CONVERT(INT, FLOOR(RAND()*10))%2
    WHEN 0 THEN CONVERT(VARCHAR(1), FLOOR(RAND()*10))
    ELSE CHAR(FLOOR(RAND()*26)+65)
    END 

    CASE CONVERT(INT, FLOOR(RAND()*10))%2
    WHEN 0 THEN CONVERT(VARCHAR(1), FLOOR(RAND()*10))
    ELSE CHAR(FLOOR(RAND()*26)+65)
    END 
      

  4.   

    SELECT RTRIM(CAST(RAND(CHECKSUM(NEWID())) * 9 + 1 AS INT)) + CHAR(65 + CAST(RAND(CHECKSUM(NEWID())) * 57 AS INT)) + RTRIM(CAST(RAND(CHECKSUM(NEWID())) * 9 + 1 AS INT)) + CHAR(65 + CAST(RAND(CHECKSUM(NEWID())) * 57 AS INT))