SQL Cookbook:一、检索记录(3)查找满足多种条件的行
问题
查找满足多种条件的行。
解决方案
使用WHERE子句以及OR和AND子句。例如,如果要查询部门10中的所有员工的信息,所有得到提成的员工信息,以及部门20中工资不超过$2000元的员工信息,可使用如下代码:
select * from emp where deptno = 10 or comm is not null or sal <= 2000 and deptno=20
讨论
可以使用AND,OR和圆括号的组合来查询满足多个条件的行。在解决方案的例子中,WHERE子句查找满足下列条件的行:
- DEPTNO字段为10,或者
- COMM字段为NULL,或者
- 工资最多为$2000,并且DEPTNO字段为20
圆括号中的条件可作为一个整体来判断。
例如,考虑下面的方法如果使用圆括号,结果会有什么变化:
select * from emp where (deptno = 10 or comm is not null or sal <= 2000) and deptno=20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------- ------- ---- ----- ------------- ---- ------- --------- 7369 SMITH CLERK 7902 17-DEC-1980 800 20 7876 ADAMS CLERK 7788 12-JAN-1983 1100 20