我有一个有趣的问题。
如何将'1,4'
转换为枚举1,4
,以便能够在表达式中传递它:
SELECT DICT_ID AS ITEM_ID FROM DICTIONARY WHERE SERIAL_NUMBER IN (#ARGUMENT#)
#ARGUMENT#
为'1,4'
。
简而言之,我想让这个查询工作就像我们传递的不是字符串,而是数字。
为什么我传递'1,4'只是传递数字 - 不是我在查询中传递此字符串,而是一些应用程序。
我可以编辑查询,但不能编辑#ARGUMENT#
答案 0 :(得分: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上发现了这个。但我无法再找到链接给原作者的信用。如果有人知道,我很乐意用原始
的链接替换它答案 1 :(得分:1)
SELECT
DICT_ID AS ITEM_ID
FROM
DICTIONARY
WHERE
INSTR(','||#ARGUMENT#||',', ','||SERIAL_NUMBER||',') > 0