顺便再问一个问题:如何在SQL中生成一个6位的随机数,要求是整型。不能有小数。用rand函数好像每次生成一样的结果。不知是否有其它办法可以解决没有?

解决方案 »

  1.   

    declare @s varchar(10)
    set @s='543f'
    print case isnumeric(@s) when 1 then cast(@s as int) else 0 end
      

  2.   

    判断是否是数字
    function isNumber(pObj,errMsg){
     var obj = eval(pObj);
     strRef = "1234567890";
     if(!isEmpty(pObj,errMsg))return false;
     for (i=0;i<obj.value.length;i++) {
      tempChar= obj.value.substring(i,i+1);
      if (strRef.indexOf(tempChar,0)==-1) {
       if (errMsg == null || errMsg =="")
        alert("数据不符合要求,请检查");
       else
        alert(errMsg);
       if(obj.type=="text") 
        obj.focus(); 
       return false; 
      }
     }
     return true;
    }
      

  3.   

    print round(rand()*1000000,0)
      

  4.   

    case isnumeric(str) 
         when 1 then cast(str as int) 
         else 0 
    end
      

  5.   

    1、
    declare @s varchar(20)
    set @s=''
    select case isnumeric(@s) when 0 then 0 else convert(int,@s) end 2、
    select convert(int , rand() * (1000000 - 100000) + 100000 )
      

  6.   

    create function Fn_check (@aa varchar(20))
    returns real
    as
    begin
    declare @ss real
    if isnumeric(@aa) =1
    set @ss= @aaelse
    set @ss=0return @ss
    end
    go
    select dbo.Fn_check('1234')
    select dbo.Fn_check('12sa34')