You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改内连接SQL以筛选hiredate列中1980年的数据?

解决方案:筛选1980年入职的员工部门信息

没问题,这有两种实用的方法可以实现你的需求,帮你精准筛选出1980年入职的员工对应的部门信息:

方法一:直接匹配提取的年份

这种方式和你原SQL里提取年份的逻辑保持一致,理解起来很直观:

SELECT EXTRACT(YEAR FROM e.hiredate), d.dname
FROM emp e
INNER JOIN dept d ON e.deptno = d.deptno
WHERE EXTRACT(YEAR FROM e.hiredate) = 1980;

我们在原查询的基础上添加了WHERE子句,直接判断提取出的入职年份是否等于1980,就能过滤出目标数据。

方法二:利用日期范围过滤(推荐,性能更优)

如果你的emp表中hiredate字段建有索引,推荐用这种方式,数据库可以直接利用索引扫描,查询效率更高:

SELECT EXTRACT(YEAR FROM e.hiredate), d.dname
FROM emp e
INNER JOIN dept d ON e.deptno = d.deptno
WHERE e.hiredate BETWEEN '1980-01-01' AND '1980-12-31';

这里通过限定hiredate的范围在1980年的第一天到最后一天,同样能筛选出1980年入职的记录,同时避免了对每一行数据执行EXTRACT函数的开销。

两种方法都能达到你想要的效果,你可以根据自己的数据库环境和性能需求选择合适的方案。

内容的提问来源于stack exchange,提问作者Bala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:55