我们要看看一共有多少个部门在我们的表里,这个述求是不是合情公道啊.
错误的:SELECT department_id FROM employees;
比如如今领导让我们列一下我们一共有哪些部门,如果我们打印这个是不是就不太合适,如果有1000个员工就要打印1000条出来,我们是不是要去掉重复值阿.
我们就在前面加一个关键词DISTINCT
正确的:SELECT DISTINCT department_id FROM employees;
错误的:SELECT salary,DISTINCT department_id FROM employees;
大家以为这么写是正确的吗,
当然是错误的,如果没有DISTINCT的话肯定是没问题的,但是由于我们有了DISTINCT,肯定是不能执行的,由于salary有107条,但是你把部门去重了可能只有12个部门,那一个字段107条一个字段12条,如许肯定不行,那如果我们把DISTINCTdepartment_id放在前面呢,如许靠谱吗,那你可能会以为前面12条后面107条那不是还是不对吗,实在这里是如许解释的,由于DISTINCT它不仅仅考虑了部门id的去重还考虑了salary去重,代表就是差别部门里的差别工资的环境.
它仅仅是没有报错,但是没有实际意义
SELECT DISTINCT department_id,salary FROM employees;
查了个寂寞.
空值是什么,是否参与运算
,就是我们刚才NULL那个字段的记载值,我们奖金率这个字段就有许多员工是空值.那么我们考虑一个事情
空值是否参与运算,null和0和''这个有什么关系我们要知道null是不等同的.就像我们有一个字段员工id是null,代表的就是不知道他的id,如果你写了0,那么就把这个人仍到部门,null代表的是不清楚,不是0.空值如果参与运算会是什么效果呢.那我们算一下员工的年工资.
SELECT employees_id,salary "月工资",salary*(1+commission_pct)*12 AS "年工资" FROM employees;