从表中选择两个不同年份的员工

时间:2017-11-15 18:59:26

标签: oracle informatica

在oracle for informatica中,我使用条件to_char(hiredate, 'YYYY')=1981,它向我展示了1981年的所有员工,如果我想看到1981年和1982年的员工在一起,需要哪些代码?

2 个答案:

答案 0 :(得分:1)

在日期列上查询一组年份

可以创建一个条件,您可以将hiredate转换为char,并按以下方式查找一组年份:

SELECT
    *
FROM
    emp
WHERE
    TO_CHAR(hiredate,'YYYY') in ('1981', '1982')
    ;

这适用于一小组记录。

对于更大的,非平凡的记录集,特别是当DATE列上可能有索引时,我个人会在DATE本身选择一个条件:

SELECT
    *
FROM
    emp
WHERE
    hiredate >= TO_DATE('01-JAN-1981','DD-MON-YYYY')
    AND   hiredate < TO_DATE('01-JAN-1983','DD-MON-YYYY')
    ;

在这里,我确保使用hiredate运算符捕获1981年的所有>=值,并通过指示hiredate小于第一个日期来获取所有1982年的记录1983。

答案 1 :(得分:0)

你可以使用IN子句

where to_char(hiredate, 'YYYY') IN ( '1981', '1982')