如果模糊匹配的条件中含有“_”或者"%"这种通配符的字符,在oracle中如果不使用escape,是否能够通过like实现模糊匹配?例如:select * from tbl_1 where name like 'abc_%'
我这里想查询出以‘abc_’开头的name相应记录在sqlserver或者sybase中可以使用转换为select * from tbl_1 where name like 'abc[_]%'实现,oracle是否也有类似的方法? 多谢~
我这里想查询出以‘abc_’开头的name相应记录在sqlserver或者sybase中可以使用转换为select * from tbl_1 where name like 'abc[_]%'实现,oracle是否也有类似的方法? 多谢~
解决方案 »
- Oracle 字段拆分问题
- win2003 至强处理器可以装oracle9I吗?SOLARIS系统下的9i数据备份后可以在win2003的oracle10g正常恢复吗?
- oracle中,在不用nextval的情况下,如何得到序列当前值?
- 在用oracle 10g imp 命令时报错,请求帮助!
- 请高手进,能不能实现下面一个功能用一个sql
- 同样的VB查询语句,访问两个不同的oracle数据库,一个占回滚段,一个不占,为何
- 请帮忙看看这个存储过程错在哪里?
- 求助oracle的开发管理工具
- Oracle管理问题??谁为小弟解忧
- 哪可以下developer/2000?
- 高级复制出现 ORA-23375: 功能与数据库版本 不兼容
- 在作oracle的高级复制的时候,执行dbms_repcat.add_master_database时出错!
select * from tbl_1 where name like 'abc\_%' escape '\';
--10g及以上可以使用正则表达式
select * from tbl_1 where regexp_like (name,'abc_');
2 (select 'abc_de' str from dual
3 union all
4 select 'qbabc_d' from dual)
5 select * from tmp where instr(str,'abc_')=1;
STR
-------
abc_de不过为了效率考虑可能要建立函数索引了
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
escape "?" 2.select * from tbl_1 where name like 'abc?_%'
select * from a where regexp_like(col,'abc[_]');但是和sql是不一样的!
因为项目要支持sqlserver,sybase以及oracle三种数据库,所以使用了sourceProDB作适配,在sourceProDB中似乎不支持escape和regexp_like,是否还有其他方法呢?