为什么不能在SQL查询中排除'IT_PROG'?

问题描述:

数据库中的数据是 http://www.w3resource.com/mysql-exercises/aggregate-function-exercises/write-a-query-to-get-the-average-salary-for-each-job-id-excluding-programmer.php为什么不能在SQL查询中排除'IT_PROG'?

结果:

sqlite> SELECT job_id, AVG(salary) 
    ...> FROM employees 
    ...> WHERE job_id <> 'IT_PROG' 
    ...> GROUP BY job_id; 
JOB_ID  AVG(salary) 
------------ ----------- 
AC_ACCOUNT 8300.0 
AC_MGR  12000.0 
AD_ASST  4400.0 
AD_PRES  24000.0 
AD_VP  17000.0 
FI_ACCOUNT 7920.0 
FI_MGR  12000.0 
HR_REP  6500.0 
**IT_PROG  5760.0** 
MK_MAN  13000.0 
MK_REP  6000.0 
PR_REP  10000.0 
PU_CLERK  2780.0 
PU_MAN  11000.0 
SA_MAN  12200.0 
SA_REP  8350.0 
SH_CLERK  3215.0 
ST_CLERK  2785.0 
ST_MAN  7280.0 
sqlite> 

上述结果还包括IT_PROG,为什么呢?

+0

我认为它的作品完美。 – Sankar

+0

它似乎工作基于您提供的链接。确保数据中没有空白。 – Bugs

它看起来是一个正确的查询。您应该查看“字符串”类型的数据库设置。 试着应用修剪功能,删除空白处:

SELECT job_id, AVG(salary) FROM employees WHERE TRIM(job_id) <> 'IT_PROG' GROUP BY job_id; 
+0

感谢您的建议,刚才我发现里面确实有空白。 –