Неожиданный вывод в Oracle SQL - PullRequest
2 голосов
/ 04 января 2012

При выполнении запроса

select * from employee
where salary <= previous_salary

Я получаю неправильный вывод следующим образом (он возвращает всю таблицу). Я делаю это в Oracle Application Express Edition

ID  NAME    SALARY  DEPT    PREVIOUS_SALARY
1   nadeem  1000    10      1500
2   kutu    1000    10      1500
3   aisha   1500    20      500
4   aisha   1500    20      500

и при выполнении этого запроса

select * from employee
where salary >= previous_salary

Я не получил данных.

1 Ответ

13 голосов
/ 04 января 2012

Возможно, вы использовали тип CHAR или VARCHAR2 для столбцов SALARY и PREVIOUS_SALARY.

При сравнении в виде строк данные должны работать так, как вы заявляете.

Если вы измените столбцы, содержащие числа, на числовой тип, тогда числовые сравнения будут работать так, как вы планировали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...