SQL> desc newjobs;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 JOB_ID                                             VARCHAR2(10)
 JOB_TITLE                                 NOT NULL VARCHAR2(35)
 MIN_SALARY                                         NUMBER(6)
 MAX_SALARY                                         NUMBER(6)
SQL> select job_id from   newjobs;JOB_ID
--------------------
AD_ASST
FI_MGR
FI_ACCOUNT
AC_MGR
AC_ACCOUNT
SA_MAN
SA_REP
PU_MAN
PU_CLERK
ST_MAN
ST_CLERK
SH_CLERK
IT_PROG
MK_MAN
MK_REP
HR_REP
PR_REP
AD_VP18 rows selected.注:查询结果里面有AD_VP这个记录
SQL> select * from  newjobs where job_id='AD_VP';no rows selected注:在这里却查询不到SQL> select * from newjobs  where max_salary=2222;JOB_ID     JOB_TITLE  MIN_SALARY  MAX_SALARY
---------- ------------  --------------   --------------
AD_VP      head           2000                2222
注:但是where语句变成 max_salary=2222 就可以查询到这个记录 我不明白为什么会出现这种情况,是不是跟索引什么有关系,求解释

解决方案 »

  1.   


    select * from newjobs where job_id like '%AD_VP%'; --应该是有结果select length(job_id) from newjobs where max_salary=2222;
    union
    select length('AD_VP') from dual;  --应该长度不一样
      

  2.   

    这样可以查到么?select * from newjobs where trim(job_id)='AD_VP';
      

  3.   

    多谢回答~真是坑爹啊  搞半天就是一个空格的问题
    SQL> select length(job_id) from newjobs1 where max_salary=2222;LENGTH(JOB_ID)
    --------------
                 6SQL> select length('AD_VP') from newjobs1 where max_salary=2222;LENGTH('AD_VP')
    ---------------
                  5SQL> select  job_id  from newjobs1 where job_id='AD_VP ';  JOB_ID
    --------------------
    AD_VP