随机选择记录的问题
我的数据库表tablea是这样的,我想选择出来5条数据 
 id               名称         推荐            排序    
 1                  zxz            1                        1 
 2                  cxx            0                        2 
 3                  dks            1                        3    
 4                  koi            1                        4 
 5                  uer            1                        1 
 6                  dkj            1                        1 
 7                  wek            1                        1 
 8                  sdk            1                        1   
 第一个条件:我想先找出推荐的数据和排序不是1的先选择出来 
 select   *   from   tablea   where   推荐=1   and   排序 <> 1 
 这样选择出来了 
 id               名称         推荐            排序    
 3                  dks            1                        3    
 4                  koi            1                        4 
 这两条数据, 
 第二个条件:在剩下的数据库中   随机的   找出是推荐的并且排序是1的3条,凑够5条选择出来   
 当然第一个条件选择出来的只有1条,那么就从剩下的数据库中   随机的   找出是推荐的并且排序是1的4条,总之最后结果是凑够5条记录   
 总结的说就是:一定把推荐的并且排序不是1的记录选择出来,但是如果凑不够五条,比如还差两条,那么就从推荐的但排序是1的记录中随即取出两条,一共凑够5条选择出来,并且排序级越高的在越在最前面   
 不知道我意思表达清楚没有,寻求答案,先谢谢高手和浏览此帖的兄弟!     
------解决方案--------------------  --try   
 set rowcount 5 
 select * from tablea where 推荐=1 and 排序 <> 1 
 union all  
 select * from tablea where 推荐=1 and 排序=1 
 set rowcount 0
------解决方案----------------------try   
 set rowcount 5 
 select * from tablea where 推荐=1 and 排序 <> 1 order by newid() 
 union all  
 select * from tablea where 推荐=1 and 排序=1 order by newid() 
 set rowcount 0
------解决方案--------------------  select top 5 * from T where 推荐=1 
 order by 排序 desc 
------解决方案--------------------insert into @a select 1      , 'zxz ',   1  ,      1 union all 
 select 2      , 'cxx ',    0 ,       2 union all 
 select 3      , 'dks ',    1 ,       3  union all 
 select 4      , 'koi ',    1 ,       4 union all 
 select 5      , 'uer ',    1 ,       1 union all 
 select 6      , 'dkj ',    1 ,       1 union all 
 select 7      , 'wek ',    1 ,       1 union all 
 select 8      , 'sdk ',    1 ,       1 
 select top 5 * from @a order by (case when 推荐 <> 1 then 推荐 else 9 end),排序 
 result: 
 id          名称         推荐          排序           
 ----------- ---------- ----------- -----------  
 2           cxx        0           2 
 6           dkj        1           1