如何在SQL(Oracle)中进行字符串匹配

时间:2017-10-29 08:38:16

标签: sql oracle select sql-like

TABLE_1有5个字符串,如:'AK___','AB_DE','AB__E','AE__E','AF ___'

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

如果给'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.

2 个答案:

答案 0 :(得分:1)

通配符位于modelcode列中,因此它必须是like运算符的右手参数:

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

答案 1 :(得分:0)

我认为您正在滥用LIKE运营商;它需要通配符。我相信您正在寻找的查询结构是:

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

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