2017-10-29 5 views
1

TABLE_1は、これらのような5弦持っていた: 'AK___'、 'AB_DE'、 'AB__Eを'、 'AE__Eを'、 'AF___'は、どのようにSQL(Oracleの)内の文字列の一致を

一つのアンダースコアがotいずれかの文字を表します数。

与えられた場合、私のTABLE_1でAB_DE ' 'AB__E'「をABZDE'`、

が選択するための方法ですが'?

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

関連する問題