对SQL很新。必须回答这个问题。我有2张桌子。 "员工"和"部门"
问题是。 "员工姓名,部门主管(HOD)以及薪水不在$ 5,000- $ 10,000范围内的所有员工的工资"
这就是我尝试过的。
select employee_name, hod, salary
from employees
where salary < 5000 and > 10000;
在&#39;&gt;&#39;&#39;&#39;&#39; 10000;
有什么想法吗?我需要加入部门吗?
答案 0 :(得分:4)
您有语法错误,最后一行需要(每次都指定列名):
where salary < 5000 and salary > 10000;
但是,由于没有符合这些标准的价值,因此没有意义。您需要使用条件or
:
where salary < 5000 or salary > 10000
排除5000到10000之间的工资。
您也可以使用BETWEEN来实现相同的目标:
where salary not between 5000 and 10000
答案 1 :(得分:0)
WHERE
条款中的每个条件都需要独立存在,对于您的第二个条件,它不知道哪个字段应该是> 10000
,您必须指定:
select employee_name, hod, salary
from employees
where salary < 5000
and salary > 10000;
这将排除所有记录,因为它是每行比较,并且每条记录只能有一个salary
值,所以您可能需要OR
而不是AND
,或者您可能在您的实际查询中包含不同的字段。
BETWEEN
用于定义一系列数字/日期,但它是包容性的,WHERE salary BETWEEN 5000 and 10000
将包含所有&gt; = 5000和&lt; = 10000,因此在这种情况下无用,并且有些人宁愿完全避免它,因为日期可能会很棘手。