Combine case statement with mod function : MOD « Numerical Math Functions « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> create table employees(
  2    empno      NUMBER(4)
  3  , ename      VARCHAR2(8)
  4  , init       VARCHAR2(5)
  5  , job        VARCHAR2(8)
  6  , mgr        NUMBER(4)
  7  , bdate      DATE
  8  , msal       NUMBER(6,2)
  9  , comm       NUMBER(6,2)
 10  , deptno     NUMBER(2) ) ;

Table created.

SQL>
SQL>
SQL> insert into employees values(1,'Jason',  'N',  'TRAINER', 2,   date '1965-12-18',  800 , NULL,  10);

1 row created.

SQL> insert into employees values(2,'Jerry',  'J',  'SALESREP',3,   date '1966-11-19',  1600, 300,   10);

1 row created.

SQL> insert into employees values(3,'Jord',   'T' , 'SALESREP',4,   date '1967-10-21',  1700, 500,   20);

1 row created.

SQL> insert into employees values(4,'Mary',   'J',  'MANAGER', 5,   date '1968-09-22',  1800, NULL,  20);

1 row created.

SQL> insert into employees values(5,'Joe',    'P',  'SALESREP',6,   date '1969-08-23',  1900, 1400,  30);

1 row created.

SQL> insert into employees values(6,'Black',  'R',  'MANAGER', 7,   date '1970-07-24',  2000, NULL,  30);

1 row created.

SQL> insert into employees values(7,'Red',    'A',  'MANAGER', 8,   date '1971-06-25',  2100, NULL,  40);

1 row created.

SQL> insert into employees values(8,'White',  'S',  'TRAINER', 9,   date '1972-05-26',  2200, NULL,  40);

1 row created.

SQL> insert into employees values(9,'Yellow', 'C',  'DIRECTOR',10,  date '1973-04-27',  2300, NULL,  20);

1 row created.

SQL> insert into employees values(10,'Pink',  'J',  'SALESREP',null,date '1974-03-28',  2400, 0,     30);

1 row created.

SQL>
SQL>
SQL> select case mod(empno,2)
  2              when 0 then 'EVEN '
  3                     else 'ODD  '
  4         end  as empno
  5  ,      sum(msal)
  6  from   employees
  7  group  by mod(empno,2);

EMPNO  SUM(MSAL)
----- ----------
ODD         8800
EVEN       10000

SQL>
SQL>
SQL> drop table employees;

Table dropped.

SQL>
SQL>








14.15.MOD
14.15.1.MOD(x, y) gets the remainder when x is divided by y.
14.15.2.MOD function in action
14.15.3.select mod(8,3), mod(13,0)
14.15.4.MOD(8, 3)
14.15.5.MOD(8, 4)
14.15.6.List all employee with odd employee number
14.15.7.Combine case statement with mod function
14.15.8.Use floor(), mod() and date calculation to show how many weeks and days an employee has been working here
14.15.9.Use mod() function to get all event employee id