喜欢和regexp_like

时间:2015-06-23 06:22:31

标签: sql regex oracle oracle11g regexp-like

就像我们有%。例如:如果我们给广告%,它将获取以广告开头的所有记录,但我应该使用regexp_like。对于regexp_like可以使用什么,以便它像%一样充当%。我不能使用^ ad,因为从UI我们会提供类似ad *的内容来获取。

查询前:从员工中选择*,其中fname类似于' pr%';

现在的查询:从员工中选择* regexp_like(fname,' pr +');

对于当前查询我获取包含pr的值但我想获得以pr。

开头的值

测试数据:如果给出pr *那么我应该获得程序等,即以pr开头的值。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * 
FROM employee 
WHERE REGEXP_LIKE (fname, '^pr(*)');

Fiddle

据我所知,这个似乎也有效:

SELECT * 
FROM employee 
WHERE REGEXP_LIKE (fname, '^pr.');

或另一个有效的方法:

SELECT *
FROM employee
WHERE regexp_like(fname,'^pr');

答案 1 :(得分:0)

检查以下链接regexp_like -

http://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm

如果仍然无法解决您的问题,那么Jeremy指出共享测试数据和预期结果。这将有助于重新获得。

检查以下示例

create table a 
(b varchar2(150));

insert into a values ('Pravin');

insert into a values ('TestPravin');

select * from a where REGEXP_LIKE (B, '^Pra');