select distinct rol from(select rol from tbname where row<13);

解决方案 »

  1.   

    可能是我没有说清楚:
    这些数值不再表内。就相当于传给function或procedure12个数值。
    这应该是一个算法的问题吧。
    最本的方法大家都会,只是想找一个最好最简单的算法。
      

  2.   

    你今天问了很多关于数组有关的问题,我感觉你可能走上了一条歪路:很多东西用sql就可以直接处理的,但是你总想把值读出来放入数组然后自己来处理。不否认有非常复杂的逻辑必须要自己处理,但大部分不需要。我就遇到过有人发帖子用一段很长的存储过程来完成本来很简单用update ... set (..) = (select ...)就能完成的功能。你把你的具体要求贴出来看看吧用pl/sql来处理除去重复数据效率很差,sql不擅长做这种工作。
      

  3.   

    下面的结果就是去掉重复值的结果集,你用光标从这个结果集中fetch就行了.select 变量1 from dual union 
    select 变量2 from dual union 
    select 变量3 from dual union 
    ......
    ......
    select 变量11 from dual union
    select 变量12 from dual;
    其实弱水兄的说法很有道理,对于SQL来说,它的很多东西和程序语言处理的方式不同.
      

  4.   

    非常感谢KingSunSha(弱水三千) 和IronPromises(铁诺) 
    我准备采用IronPromises(铁诺) 兄的方法
    马上给分。
      

  5.   

    建议您对看看oracle的PL/SQL方面的书籍。
    如:《oracle8i PL/SQL程序设计》