我这样
insert into myscore
select sd.stockid,cast( floor(rand()*100) as decimal(5,2))
from stock_t sd
怎么插入myscore的随机数全是一样的???

解决方案 »

  1.   

    declare @rd dec(10,2)
    set @rd=cast( floor(rand()*100) as decimal(5,2))insert into myscore
    select sd.stockid,@rd
    from stock_t sd
      

  2.   

    我想为每个股票id生成一个不同的随机数该怎么办?
    select sd.stockid,cast( floor(rand(sd.stock_id)*100) as decimal(5,2))
    from stock_t sd这样子貌似得到的数也不是很随机,好多重复的
      

  3.   


    select sd.stockid,cast( floor(rand()*100) as decimal(5,2)/sd.stock_id)
    from stock_t sd
      

  4.   

    RAN函数在 在单个查询中反复调用 RAND() 将产生相同的值。用checksum(newid())可以解决
      

  5.   

    使用同一个种子值重复调用 RAND() 会返回相同的结果。对于一个连接,如果使用指定的种子值调用 RAND(),则 RAND() 的所有后续调用将基于使用该指定种子值的 RAND() 调用生成结果。例如,以下查询将始终返回相同的数字序列。
    SELECT RAND(100), RAND(), RAND() 
     以下示例将产生由 RAND 函数生成的四个不同的随机数。 
    DECLARE @counter smallint;
    SET @counter = 1;
    WHILE @counter < 5
       BEGIN
          SELECT RAND() Random_Number
          SET @counter = @counter + 1
       END;
    GO