【发布时间】:2018-06-27 17:13:02
【问题描述】:
在 Oracle 中使用 SQL LIKE 运算符时,如何转义通配符(_ 和 %)?
我今天遇到了一个愚蠢的问题。我需要使用LIKE 在varchar 列上搜索下划线_ 的存在。它不起作用——正如预期的那样——因为根据 SQL,下划线是通配符。这是我的(简化的)代码:
create table property (
name varchar(20),
value varchar(50)
);
insert into property (name, value) values ('port', '8120');
insert into property (name, value) values ('max_width', '90');
insert into property (name, value) values ('taxrate%', '5.20');
我在 PostgreSQL 中尝试了以下查询,它们返回了我想要的行:
select * from property where name like '%\_%'; -- should return: max_width
select * from property where name like '%\%%'; -- should return: taxrate%
不幸的是,它在 Oracle 12c 中不起作用。是否有转义通配符的“标准”方式?或者至少可以在 Oracle 中使用?
【问题讨论】:
-
你应该使用 unicode 表示