我有一张cust表
id name class mark
1 John Deo Matt Four 75
2 Max Ruin Three 85
3 Arnold Three 55
4 Krish Star HN Four 60
5 John Mike Four 60
6 Alex John Four 55
我想搜索一个没有John Matt
字符串的deo
客户。如何使用LIKE条件?
SELECT * FROM cust WHERE name LIKE '%John Matt%'
结果应该获取第1行。
如果搜索字符串为Matt Deo
或john
尝试查找确切名称时无法实现上述操作。即使给出了2个字符串,如何使LIKE查询获取客户?
答案 0 :(得分:1)
如果要匹配的模式是
s <- stack(r, r*0.8, r*0.6, r*0.4)
levelplot(s,
margin=FALSE,
colorkey=list(
space='bottom',
labels=list(at=-5:5, font=4),
axis.line=list(col='black'),
width=0.75
),
par.settings=list(
strip.border=list(col='transparent'),
strip.background=list(col='transparent'),
axis.line=list(col='transparent')
),
scales=list(draw=FALSE),
col.regions=viridis,
at=seq(-5, 5, len=101),
names.attr=rep('', nlayers(s))) +
layer(sp.polygons(oregon, lwd=3))
你可以写:
string1<space>anything<space>string2
答案 1 :(得分:0)
为什么不呢
select * from cust where name Like 'John%Matt' ;
答案 2 :(得分:0)
SELECT *
FROM custtable
WHERE upper(NAME) LIKE '%' || upper(:first_word) || '%'
AND upper(NAME) LIKE '%' || upper(:second_word) || '%'
答案 3 :(得分:0)
您必须使用LIKE
吗? Oracle有很多更强大的搜索选项。
http://docs.oracle.com/cd/B19306_01/server.102/b14220/content.htm#sthref2643
我会看那些。
答案 4 :(得分:0)
我相信你需要REGEXP_LIKE():
SQL> with tbl(name) as (
select 'John Deo Matt' from dual
)
select name
from tbl
where regexp_like(name, 'matt|deo', 'i');
NAME
-------------
John Deo Matt
SQL>
这里的正则表达式字符串指定名称包含&#39; matt&#39;或者&#39; deo&#39;而且我是&#39;我&#39;意味着它不区分大小写。名字的顺序无关紧要。