在非等连接中,EMP表与SALGRADE表之间的关系并非简单的列对应。EMP表的SAL列与SALGRADE表的LOSAL和HISAL列之间存在一种范围匹配的关系。
问题分析:
如何查找出在SALGRADE表所示每个工资段中的员工号码?由于没有直接对应的列,我们可以通过非等连接实现此操作。
SQL 查询示例:
SELECT EMP.EMPNO, EMP.ENAME, EMP.SAL, SALGRADE.GRADE
FROM EMP, SALGRADE
WHERE EMP.SAL BETWEEN SALGRADE.LOSAL AND SALGRADE.HISAL;
在该查询中,使用了BETWEEN运算符来建立EMP表的SAL列与SALGRADE表的工资段(LOSAL 和 HISAL 列)之间的关系,从而筛选出符合每个工资段的员工信息。
示例结果
| EMPNO | ENAME | SAL | GRADE |
|-------|-------|------|-------|
| 7839 | KING | 5000 | 5 |
| 7698 | BLAKE | 2850 | 4 |
| 7782 | CLARK | 2450 | 4 |
| ... | ... | ... | ... |
总结:通过使用非等连接可以在不同表之间建立范围关系,完成复杂的数据筛选任务。