在sql查询中提取月份
在员工表(部门50、60、80)的所有三个部门中,可以找到所有部门所有员工的招聘日期中的哪个月(即1月或2月,或6月等) 提示:1月份是员工被雇佣到部门50、60和80的月份 表中的数据可能是这样的在sql查询中提取月份,sql,oracle,datetime,oracle11g,to-char,Sql,Oracle,Datetime,Oracle11g,To Char,在员工表(部门50、60、80)的所有三个部门中,可以找到所有部门所有员工的招聘日期中的哪个月(即1月或2月,或6月等) 提示:1月份是员工被雇佣到部门50、60和80的月份 表中的数据可能是这样的 Hiredate Department_id 29-JAN-97 50 03-JAN-90 60 29-JAN-00 80 您将要编写的SQL的输出应产生如下内
Hiredate Department_id
29-JAN-97 50
03-JAN-90 60
29-JAN-00 80
您将要编写的SQL的输出应产生如下内容:
Month Name
------------------
January
我真的不知道从哪里开始。请帮忙 要从
hiredate
列获取部门列表的月份名称,请使用以月份格式
请阅读文档以了解更多信息
月份——月份名称,用空格填充,长度为9个字符
比如说,
SELECT DISTINCT TO_CHAR(hiredate, 'Month') Month_name, department_id dept
FROM employees
WHERE department_id IN (50, 60, 80);
内部查询在每个部门中选择不同的月份。
现在,您只需要计算这些月份,并显示count
=3的行。这是通过外部查询中的groupby
和having
完成的
select mth "Month"
from (
select distinct department_id, to_char(hire_date, 'Month') mth
from employees
where department_id in (50, 60, 80) )
group by mth
having count(1)=3