在sql查询中提取月份

在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的输出应产生如下内

在员工表(部门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的输出应产生如下内容:

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