Oracle SQL中出现意外输出

use*_*400 2 sql oracle oracle11g

在执行查询时

select * from employee
where salary <= previous_salary
Run Code Online (Sandbox Code Playgroud)

我得到一个错误的输出如下(它返回整个表).我在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
Run Code Online (Sandbox Code Playgroud)

并执行此查询

select * from employee
where salary >= previous_salary
Run Code Online (Sandbox Code Playgroud)

我没有找到数据.

Jon*_*ler 13

您可能已将CHAR或VARCHAR2类型用于SALARY和PREVIOUS_SALARY列.

当比较为字符串时,数据应该像您声称的那样工作.

如果将包含数字的列更改为数字类型,则数字比较将按预期工作.

  • +1还是比较`TO_NUMBER(工资)> = TO_NUMBER(previous_salary)` - 但如果它可以将数据类型更改为数字,这绝对应该是数字! (2认同)