2014-10-31 48 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