0

以下のクエリのように値をデコードしたい:

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

しかし、私はレコードを取得していません(レコードは実際に利用可能です)。のようなデコード機能は機能('''4'',''5'',''6''')しますか?

試しましたが、動作しませんでした。そうするための代替手段はありますか?

4

1 に答える 1

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
于 2012-07-29T17:58:17.493 に答える