select * from (
select  uid,city,province,
ROW_NUMBER() over(order by carrier) rid from Panelists 
where SyncDate<='2014-09-02'
and Province in ('福建省','新疆省','江西省' ,'云南省')
) aa 
where rid <='200'
我这里是挑了四个省份,但是我想城市随机不同的人,,uid是人,,,谢谢!!

解决方案 »

  1.   


    --定义变量
    DECLARE @number INT
    --给变量赋随机值
    SET @number=(select cast(floor(rand() * 101) as int) )
    --查询随机值数的人员信息
    select * from (
    select  uid,city,province,
    ROW_NUMBER() over(order by carrier) rid from Panelists 
    where SyncDate<='2014-09-02'
    and Province in ('福建省','新疆省','江西省' ,'云南省')
    ) aa 
    where rid <='200' AND rid=@number
      

  2.   

    select * from (
    select  uid,city,province,
    ROW_NUMBER() over(order by NEWID()) rid from Panelists 
    where SyncDate<='2014-09-02'
    ) aa 
    where rid <= 200
    这样就完全随机了。