作为标题,在某些情况下,我看到Regexp_substr比Instr更快,成本更低,而在某些情况下则相反。 我不知道何时应该使用Instr或Regexp_substr,有人可以为我解释一下并告诉我每种方法的好处吗?以下示例:
**Regexp_substr:**
SELECT * FROM tabl1
WHERE 1 = 1
AND col1 IN (
SELECT regexp_substr(abc,'[^,]+',1,level) AS A
FROM (
SELECT 001 abc -- replace with parameter
FROM DUAL
)
CONNECT BY LEVEL <= LENGTH (REGEXP_REPLACE (abc,'[^,]'))+1 );
**Instr:**
SELECT * FROM tabl1
WHERE 1 = 1
AND INSTR (',' || '001' || ',',',' || col1 || ',') > 0 ;
谢谢!