code     mobile          flag
1        13791119090      0
2        13792229900      0
3        13792229909      0
..........
随机提取手机号请大家帮忙,第一次提取5个号,第二次提取4个号.第三次提取两个号,第四次提取一个号,重点是提取的号码不能重复,flag作为标志位.

解决方案 »

  1.   

    用来抽奖?如果这样的话,还不如做成文本文件,用个小的抽奖程序来用用呢,还可以让领导来按一下按钮,效果更好,呵呵如果你在库里抽,就用这个试试吧:
    SELECT TOP 5 * 
      FROM tablename ORDER BY NEWID() 
      

  2.   

    要借助另外一个表,于原表(tb1)结构同tb2 
    declare @a int
    set @a=5
    while(@a>0)
    begin
        exec('insert tb2  SELECT TOP '+ cast(@a as varchar)+ ' * FROM tb1 where flag=0  ORDER BY NEWID')
        select * from tb2  --你要的数据
        update tb1 set flag=1 where tb1.code in(select code from tb2)  --更新原表中选出的数据的标志值为1,1 为被选中状态
        delete tb2  --删除tb2表数据
        set @a=@a-1  --减小选数据的记录数
    end