use case when to control the order index : Case Query « Select Query « Oracle PL / SQL






use case when to control the order index

   
SQL>
SQL>
SQL> create table emp
  2  ( empno      NUMBER(4)    constraint E_PK primary key
  3  , ename      VARCHAR2(8)
  4  , init       VARCHAR2(5)
  5  , job        VARCHAR2(8)
  6  , mgr        NUMBER(4)
  7  , bdate      DATE
  8  , sal        NUMBER(6,2)
  9  , comm       NUMBER(6,2)
 10  , deptno     NUMBER(2)    default 10
 11  ) ;

Table created.

SQL> insert into emp values(1,'Tom','N',   'TRAINER', 13,date '1965-12-17',  800 , NULL,  20);

1 row created.

SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20',  1600, 300,   30);

1 row created.

SQL> insert into emp values(3,'Wil','TF' ,  'Tester',6,date '1962-02-22',  1250, 500,   30);

1 row created.

SQL> insert into emp values(4,'Jane','JM',  'Designer', 9,date '1967-04-02',  2975, NULL,  20);

1 row created.

SQL> insert into emp values(5,'Mary','P',  'Tester',6,date '1956-09-28',  1250, 1400,  30);

1 row created.

SQL> insert into emp values(6,'Black','R',   'Designer', 9,date '1963-11-01',  2850, NULL,  30);

1 row created.

SQL> insert into emp values(7,'Chris','AB',  'Designer', 9,date '1965-06-09',  2450, NULL,  10);

1 row created.

SQL> insert into emp values(8,'Smart','SCJ', 'TRAINER', 4,date '1959-11-26',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(9,'Peter','CC',   'Designer',NULL,date '1952-11-17',  5000, NULL,  10);

1 row created.

SQL> insert into emp values(10,'Take','JJ', 'Tester',6,date '1968-09-28',  1500, 0,     30);

1 row created.

SQL> insert into emp values(11,'Ana','AA',  'TRAINER', 8,date '1966-12-30',  1100, NULL,  20);

1 row created.

SQL> insert into emp values(12,'Jane','R',   'Manager',   6,date '1969-12-03',  800 , NULL,  30);

1 row created.

SQL> insert into emp values(13,'Fake','MG',   'TRAINER', 4,date '1959-02-13',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(14,'Mike','TJA','Manager',   7,date '1962-01-23',  1300, NULL,  10);

1 row created.

SQL> select job, ename
  2  ,      case
  3           when sal <= 2500
  4           then 'cheap'
  5           else 'expensive'
  6         end         as class
  7  from   emp
  8  where  bdate < date '1964-01-01'
  9  order  by case job
 10            when 'Designer' then 1
 11            when 'Designer'  then 2
 12                            else 3
 13            end;
Enter...

Designer Black    expensive
Designer Peter    expensive
Tester   Mary     cheap
Manager  Mike     cheap
TRAINER  Smart    expensive
TRAINER  Fake     expensive
Tester   Wil      cheap
Tester   Jack     cheap

8 rows selected.

SQL>
SQL> drop table emp;

Table dropped.

SQL>

   
    
    
  








Related examples in the same category

1.You could use the case statement in an SQL statement
2.Combine case with NVL function
3.Combine Case with group by
4.Use the CASE expression and SUM function
5.Use the CASE expression and SUM function to create an order price report
6.case switch based on clob data
7.Use case ... when to output comments for marks
8.Use case when and grouping function together
9.Use case when clause to decode value
10.Use case when statement to replace if statement
11.Use case when statement with between ... and
12.Use case when statement with exists and subquery
13.Use case when statement with in()
14.Use case when statement with to_char() like
15.Use case when with comparasion operator
16.A searched CASE statement
17.case when count(*) NOT between ... and
18.Rename case when column