我想像下面的查询那样解码值:
select id,
name,
val
from table1
where id in (decode(1,0,0,1,('''4'',''5'',''6''')));
但我没有记录(记录实际可用)。
像('''4'',''5'',''6''')
这样的解码功能是否有效?
我尝试但没有工作。这样做的其他选择吗?
答案 0 :(得分: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