我目前正在使用Oracle SQL Developer,并且正在尝试编写一个查询,该查询将允许我搜索类似于某个值但始终与之不同的所有字段。
SELECT last_name FROM employees WHERE last_name LIKE 'Do[^e]%';
所以我得到的结果是:给我所有以'Do'开头但不是'Doe'的姓氏。
我从一本普通的SQL基础知识中获得了方括号方法,因此我认为任何SQL数据库都应该能够运行它。
这是我的第一篇文章,很高兴澄清我的问题是否还不够清楚。
答案 0 :(得分:5)
在Oracle的LIKE
中,不能使用正则表达式。但是您可以使用REGEXP_LIKE
。
SELECT * FROM EMPLOYEES WHERE REGEXP_LIKE (Name, '^Do[^e]');
模式开头的^
将其锚定到比较字符串的开头。换句话说,字符串必须以匹配的模式开头。并且结尾不需要通配符,因为字符串的末尾没有锚点(将是$
)。而且您似乎已经知道[^e]
的含义。