2017-10-29 36 views
1

TABLE_1有5串这样的: 'AK___', 'AB_DE', 'AB__E', 'AE__E', 'AF___'如何字符串匹配的SQL(Oracle)的

一个下划线代表任何一个字母OT数。

如果给“ABZDE'`,

是有办法,选择 '在我的TABLE_1 AB_DE', 'AB__E'?

create table TABLE_1 (modelname varchar2(10)) 

INSERT INTO Table_1 VALUES ('AK___') 
INSERT INTO Table_1 VALUES ('AB_DE') 
INSERT INTO Table_1 VALUES ('AB__E') 
INSERT INTO Table_1 VALUES ('AE__E') 
INSERT INTO Table_1 VALUES ('AF___') 

SELECT * 
FROM Table_1 
WHERE modelcode like 'AEZDE' --of course, this select clause doesn't work as I expected. 

回答

0

通配符都在modelcode列,因此它需要的like操作者的右手参数:

SELECT * 
FROM Table_1 
WHERE 'AEZDE' like modelname 
-- Here ------------^ 
+0

非常感谢您的回复 – Soon

0

我认为你在滥用LIKE操作;它需要通配符。我相信你要查询的查询结构是:

SELECT * 
FROM Table_1 
WHERE modelcode like '%AE%DE%' 

但我不确定。你的问题和你的代码之间的字母是否改变?

+0

我的问题似乎含糊不清。所以我刚刚编辑了我的问题。字符串有5个字母(固定)。感谢您的回复 – Soon