web-dev-qa-db-ja.com

SQLクエリで「NOT LIKE」

この単純なクエリが「ORA-00936:missing expression」を返すのはなぜですか(データベースはおわかりのようにOracleです):

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND NOT LIKE '2%'

私は愚かな感じがしますが、私は何を間違っていますか?

23
Ariod

2番目のNOT LIKEのフィールド名idを忘れました。試してください:

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'

Where句のANDは、id NOT LIKE '1%'などの2つの完全な条件式を結合し、idが「好きではない」複数の値をリストするために使用することはできません。

68
mikej

両方の式で列を指定する必要があります。

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
11
tvanfosson

NOTの前にIDを見逃しました。指定する必要があります。

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
9
martin clayton