2

興味深い質問があります。

次のような式で渡すことができるようにするには、どうすれば'1,4'enum に変換できますか。1,4

SELECT DICT_ID AS ITEM_ID FROM DICTIONARY WHERE SERIAL_NUMBER IN (#ARGUMENT#) 

はどこ#ARGUMENT#ですか'1,4'

つまり、文字列ではなく数値を渡した場合のように、このクエリを機能させたいと考えています。

数字を渡すだけでなく、「1,4」を渡すのはなぜですか。この文字列をクエリで渡すのではなく、いくつかのアプリケーションを渡します。

クエリは編集できますが、#ARGUMENT# は編集できません

4

2 に答える 2

3

何かのようなもの:

select dict_id as item_id
from dictionary d
where serial_number in  (
     select to_number(regexp_substr ('1,2,3,4','[^,]+',1,level)) as id
     from dual
     connect by regexp_substr ('1,2,3,4','[^,]+',1,level) is not null
)

注:これはSOで少し前に見つけました。しかし、元の作者にクレジットを与えるためのリンクはもう見つかりません。誰かが知っているなら、私は喜んでこれをオリジナルへのリンクに置き換えます

于 2013-02-28T08:18:40.830 に答える
1
SELECT 
      DICT_ID AS ITEM_ID 
   FROM 
      DICTIONARY 
   WHERE 
      INSTR(','||#ARGUMENT#||',', ','||SERIAL_NUMBER||',') > 0
于 2013-02-28T08:14:08.923 に答える