2014-10-31 45 views
0

我有一个表,看起来像这样的最小值:PL/SQL选择矢量

CREATE OR REPLACE TYPE tip_orase AS VARRAY(10) of VARCHAR2(50) 
/
CREATE table excursie_try (
cod_excursie NUMBER(4), 
denumire VARCHAR2(20), 
orase tip_orase, 
status varchar2(20) 
); 

,我需要找出在orase最低数量的条目条目的“cod_excursie” 。

我可以做很多工作,为每个条目计算城市数量并选择最小值。然后进行一个查询,为orase中条目数最少的条目赋予“cod_excursie”。

有没有更简单的方法?我试过类似:

select cod_excursie 
from excursie_try, (select max(orase.count()) m 
        from excursie_try) T 
where orase.count = T.m 
    and ROWNUM <= 1; 

但它不起作用。任何想法或我必须采取长期的方式?

回答

1

试试这个:

select cod_excursie from (
    select et.cod_excursie, 
     (select count(*) from table(et.orase)) n 
    from excursie_try et order by 2 desc 
) where rownum = 1; 

(select count(*) from table(et.orase))是一个单行子查询,我用TABLE来效仿VARRAY SQL表。

order by 2 desc在子查询中+ where rownum = 1用于前N报告。

+0

完美:非常感谢你!我不知道你可以做那张桌子(et.orase),非常好的功能! – 2014-10-31 15:21:26