select top 100 * from(select Url,checksum(newid()) as ha from R_RndAticle)tmp where ha%2=0 这样在08可以  为什么2000不行--ha筛选不正确怎么改

解决方案 »

  1.   

    语法没问题select checksum(newid()) where checksum(newid())%2=0
    --取出一个数,在带入
    select top 100 * from(select Url,checksum(newid()) as ha from R_RndAticle)tmp where ha%2=0
    --查询试试
      

  2.   

    语法没问题select checksum(newid()) where checksum(newid())%2=0
    --取出一个数,在带入
    select top 100 * from(select Url,checksum(newid()) as ha from R_RndAticle)tmp where tmp.ha%2=0
    --查询试试
      

  3.   

    有可能这个功能是2000以上的版本才有的,建议去看一下sql2005 或2008 新增的功能试一下
      

  4.   

    select top 100 * from(select top 100 percent number,checksum(newid()) as ha 
    from master..spt_values where type='p')tmp 
    where ha%2=0 看了一下2K的计划。不加TOP 100 PERCENT 计划有问题
      

  5.   

    select top 100 * from(select top 100 percent number,checksum(newid()) as ha 
    from master..spt_values where type='p')tmp 
    where ha%2=0 看了一下2K的计划。不加TOP 100 PERCENT 计划有问题
      

  6.   

    但是 这样惨了  ,cpu占用 又高了 ,我本意是能这样减少cpu占用  然后随机读取
      

  7.   

    你那样在SQL2K8能减少CPU?
    没环境。
    比如有ID
    先生成一些随机数再取随机数与ID相同的.