Это не работает, потому что у вас есть хотя бы одна строка в таблице department
, где UPPER(state) != 'VIC'
- это правда.
Работа это в вашей голове, сначала необходимо выполнить подзапрос:
SELECT *
FROM department
WHERE UPPER(state) != 'VIC'
Если это возвращает ничего, то ваш внешний запрос выглядит следующим образом, эффективно:
SELECT *
FROM department
WHERE NOT TRUE;
Что означает его ничего не вернет.
Теперь мой последующий вопрос: что вы хотите сделать?
Я подозреваю, что нет оснований использовать подзапрос. Я хотел бы предложить это в качестве возможной альтернативы:
SELECT *
FROM department
WHERE UPPER(state) = 'VIC'
Но так как я не знаю, что конечный результат вы на самом деле хотите, я не знаю, если это уместно.
Какой результат? Почему бы не просто «выбрать» из отдела, где UPPER (state)! = «VIC»? – Blorgbeard