非等值连接的 SQL 写法,在 Oracle 里还是蛮常见的。用BETWEEN配合工资区间表,能挺方便地查出员工属于哪个薪资等级。这类查询虽然比等值连接稍微绕点,但实际用起来还挺顺的,尤其在做报表时实用。

Oracle 数据库里的非等值连接,用法也不复杂。像下面这种:

SELECT e.ename, e.job, e.sal, s.grade
FROM emp e, salgrade s
WHERE e.sal BETWEEN s.losal AND s.hisal;

语义上就是拿emp表里的员工工资,在salgrade表中找对应的等级段。简单明了,执行效率也不错。

如果你之前只用过等值连接,建议可以看看这些资料:SQL Server 等值与非等值连接查询课件,还有这篇实用操作示例,蛮有参考价值的。

写报表或者按工资段分组统计的时候,这种连接方式好用。而且你会发现,和CASE WHEN相比,非等值连接写起来更直观。

哦对了,如果你是SCOTT用户,表结构基本就能直接跑。再结合Oracle 11g SQL 基础 PPT,熟悉起来更快。

如果你在优化复杂查询,非等值连接也是个不错的思路。配合索引,响应也快,逻辑也清晰。