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

How to string match in SQL(Oracle)

TABLE_1 有 5 个这样的字符串:'AK___'、'AB_DE'、'AB__E'、'AE__E'、'AF___'

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

如果给定 'ABZDE'`,

有没有办法在我的 Table_1 中 select '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.

通配符在 modelcode 列中,因此它需要是 like 运算符的右手参数:

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

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

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

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