需求:分别统计emp表中1980,1981,1982,1987年入职的同事的数量。

      这里用decode很容易就解决了:

select sum(t.num_1980) as "1980",
       sum(t.num_1981) as "1981",
       sum(t.num_1982) as "1982",
       sum(t.num_1987) as "1987"
  from (select (decode(to_char(e.hiredate, 'yyyy'), '1980', 1, 0)) num_1980,
               (decode(to_char(e.hiredate, 'yyyy'), '1981', 1, 0)) num_1981,
               (decode(to_char(e.hiredate, 'yyyy'), '1982', 1, 0)) num_1982,
               (decode(to_char(e.hiredate, 'yyyy'), '1987', 1, 0)) num_1987
          from emp e) t

  结果:

oracle decode的用法

decode(val1, val2, val3, val4):若val1等于val2,取值val3;否则取值val4

相关文章:

  • 2022-12-23
  • 2021-10-24
  • 2021-06-20
  • 2021-06-13
  • 2021-12-18
  • 2022-12-23
猜你喜欢
  • 2021-09-02
  • 2022-12-23
  • 2022-02-17
  • 2021-10-04
  • 2021-06-22
  • 2021-11-28
  • 2022-01-07
相关资源
相似解决方案