Sql 在oracle中使用正则表达式将该字符串与其他字符串进行比较

Sql 在oracle中使用正则表达式将该字符串与其他字符串进行比较,sql,oracle,Sql,Oracle,我有一个输入字符串“xyz”以大写或小写形式运行 在这里,我必须与字符串“test | xyz | test1 | xyz1”进行比较。如果找到,我必须返回“Y”。 是否有任何内置函数或正则表达式可用于在oracle中执行此检查 Select 'Y' from dual where regexp_like('test|xyz|test1|xyz1','xyz','i'); 它将只返回匹配值的结果。如果希望“n”表示不匹配的值,请尝试正则表达式指令 select case when

我有一个输入字符串“xyz”以大写或小写形式运行

在这里,我必须与字符串“test | xyz | test1 | xyz1”进行比较。如果找到,我必须返回“Y”。 是否有任何内置函数或正则表达式可用于在oracle中执行此检查

 Select 'Y' from dual where regexp_like('test|xyz|test1|xyz1','xyz','i');
它将只返回匹配值的结果。如果希望“n”表示不匹配的值,请尝试正则表达式指令

select case when 
       regexp_instr('test|xyz|test1|xyz1','XYz',1,1,1,'i') > 0 then 'y'
       else 'n' end col1 
from dual
或者,只需在两侧使用lower()函数并检查instring即可

select case when 
       regexp_instr('test|xyz|test1|xyz1','XYz',1,1,1,'i') > 0 then 'y'
       else 'n' end col1 
from dual

您是否在表中有
test | xyz | test1 | xyz1
?@user2750658,您确定这是您需要的吗?这将使
xyz
test | test1 | xyz1
匹配。