要求是:要求查询员工表的姓名,地址和收入水平,为什么我写出来会有重复的,用了distinct之后也是会有?

这是我的员工表和运行的代码和结果
(https://img-ask.csdn.net/upload/201810/23/1540256869_196509.jpg)
(https://img-ask.csdn.net/upload/201810/23/1540256912_988655.jpg)
(https://img-ask.csdn.net/upload/201810/23/1540256833_826101.jpg)

你这两张表之间没有建立连接关系,当然会出现重复记录啊,跟用不用distinct没关系。
我猜两张表都不存在同一个人的记录出现两次,即使出现重名那也是本来两个人重名了,他们也对应不同的EmployeeID,反倒不应该用distinct修饰。

假如采用内连接的方式,正确的语句类似这样:

select Name,address,case when InCome<'2000' then '低收入' when InCome>='2000 or InCome<='3000' then '中等收入' when Income>'3000' then '高收入' end as '收入水平 from Employees JOIN Salary ON Employees.EmployeeID=Salary.EmployeeID;

将or改成and when inCome>=2000 and inCome<=3000