现在在老项目上改动:查询一张表,供应商信息,供应商分三个等级:优秀、合格、不合格
现在需求是这样子的:

如果供应商不满足5家全部带过来 超出5家供应商,优先随机选中5家优秀供应商,优秀供应商不到5家,从合格供应商中随机选择;

我暂时没有啥简单的办法,所以来求助大神...大牛...

解决方案 »

  1.   

    用存储过程吧,这样的sql简单不了
      

  2.   

    [Quote=引用 6 楼 createteam 的回复:]- -。。程序中。就是把所满足的数据查出来。放入 集合。。 然后随即遍历~!~~没有效率。。浪费资源。建议还是用存储过程吧
    [/Q
    数据量不大  超不过100  一般就是30、40
      

  3.   

    把供应商等级使用数字表示,例如优秀为10,合格为5,不合格为0查询,按照供应商等级倒叙排列,取前5个.一条sql搞定,搂住,把分都给我吧
      

  4.   

    不好意思,没有看到"随机"2个字, 下面是按照oracle的sql语法写的:select * from (select a.*,rownum as aaa from 供应商 as a order by 等级 desc, DBMS_RANDOM.RANDOM )where aaa<6