为什么不能在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,为什么呢?
答
它看起来是一个正确的查询。您应该查看“字符串”类型的数据库设置。 试着应用修剪功能,删除空白处:
SELECT job_id, AVG(salary) FROM employees WHERE TRIM(job_id) <> 'IT_PROG' GROUP BY job_id;
+0
感谢您的建议,刚才我发现里面确实有空白。 –
我认为它的作品完美。 – Sankar
它似乎工作基于您提供的链接。确保数据中没有空白。 – Bugs