select * from tabname where col=decode(col,'a','01'||'02','b','01'||'02'||'12',....)

解决方案 »

  1.   

    估计要用存储过程了,因为上边的连接之后是作为一个值处理了,而不是一个集合之中的几个值,用存储过程执行动态语句
    IF COL='A' THEN
       SQL=SQL||'IN ('01','02')'
    ELSIF --- THEN
    ---
    ELSEEND IF;
      

  2.   

    select... where ... in (case when ... then '''01''' || ',''02'''
                                 when ...
                            end);
    ","是关键字所以不对,你去掉在试试