正则表达式无法在类似条件下工作

时间:2018-08-17 09:05:54

标签: sql oracle

我目前正在使用Oracle SQL Developer,并且正在尝试编写一个查询,该查询将允许我搜索类似于某个值但始终与之不同的所有字段。

SELECT last_name FROM employees WHERE last_name LIKE 'Do[^e]%';

所以我得到的结果是:给我所有以'Do'开头但不是'Doe'的姓氏。

我从一本普通的SQL基础知识中获得了方括号方法,因此我认为任何SQL数据库都应该能够运行它。

这是我的第一篇文章,很高兴澄清我的问题是否还不够清楚。

1 个答案:

答案 0 :(得分:5)

在Oracle的LIKE中,不能使用正则表达式。但是您可以使用REGEXP_LIKE

SELECT * FROM EMPLOYEES WHERE REGEXP_LIKE (Name, '^Do[^e]');

模式开头的^将其锚定到比较字符串的开头。换句话说,字符串必须以匹配的模式开头。并且结尾不需要通配符,因为字符串的末尾没有锚点(将是$)。而且您似乎已经知道[^e]的含义。