«НЕ НРАВИТСЯ» в запросе SQL - PullRequest
22 голосов
/ 19 ноября 2009

Почему этот простой запрос возвращает 'ORA-00936: пропущенное выражение' (база данных - Oracle, как вы можете сказать):

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

Я чувствую себя глупо, но что я делаю не так?

Ответы [ 3 ]

64 голосов
/ 19 ноября 2009

Вы пропустили имя поля id во втором NOT LIKE. Попробуйте:

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

AND в предложении where объединяет 2 полных выражения условия, таких как id NOT LIKE '1%', и не может быть использовано для перечисления нескольких значений, для которых идентификатор «не похож».

10 голосов
/ 19 ноября 2009

Вы должны указать столбец в обоих выражениях.

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
9 голосов
/ 19 ноября 2009

Вы пропустили идентификатор до НЕ; это нужно указать.

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