1到20的 随机数 怎么取请大哥们 赶快 帮忙

解决方案 »

  1.   

    取一个select cast(rand()*20 as int)+1
      

  2.   

    一次取不重复的多个,比如8个select top 8 *
    from (
    select 1 as col union all
    select 2 as col union all
    select 3 as col union all
    select 4 as col union all
    select 5 as col union all
    select 6 as col union all
    select 7 as col union all
    select 8 as col union all
    select 9 as col union all
    select 10 as col union all
    select 11 as col union all
    select 12 as col union all
    select 13 as col union all
    select 14 as col union all
    select 15 as col union all
    select 16 as col union all
    select 17 as col union all
    select 18 as col union all
    select 19 as col union all
    select 20 as col 
    ) as t
    order by newid()
      

  3.   

    newid是啥呢? 无order也只是列举而已
      

  4.   

    只有这两种方式,使用RAND()函数和NEWID()函数!
      

  5.   

    select cast(rand()*20 as int)+1
    -------------------------------------------------------
    二楼的正确
      

  6.   

    select ceiling(rand()*20) 这样就行了,不用再加1。