2012-07-29 73 views
0

甲骨文解碼我要像下面的查詢值進行解碼:具有多個值

select id, 
     name, 
     val 
    from table1 
where id in (decode(1,0,0,1,('''4'',''5'',''6'''))); 

但我沒有得到記錄(記錄是實際可用)。 像('''4'',''5'',''6''')這樣的解碼功能是否有效?

我試過但沒有工作。任何替代方案?

+0

什麼是你想做的集合?你能舉一個有效的例子嗎? – 2012-07-29 14:00:24

+1

很難弄清楚如何回答這個問題......請描述數據和期望的結果。 – Randy 2012-07-29 14:07:36

+0

對於我的解碼功能,當'表達'等於'搜索'時,我需要提供多個'結果'值。 – hemanth 2012-07-29 14:12:38

回答

1

我不知道我明白你在問什麼。我最好的猜測是你想要返回一個集合。例如,如果你定義一個NUM_TBL收集

CREATE TYPE num_tbl IS TABLE OF NUMBER; 

然後,你可以做這樣的事情在您DECODE返回數字

SQL> ed 
Wrote file afiedt.buf 

    1 with x as (
    2 select level id 
    3  from dual 
    4 connect by level <= 10) 
    5 select * 
    6 from x 
    7 where id in (select * 
    8*     from table(decode(1, 0, num_tbl(0), 1, num_tbl(2,3,4)))) 
SQL>/

     ID 
---------- 
     2 
     3 
     4