Mega Code Archive

 
Categories / PostgreSQL / Select Query
 

Using case expressions in statements

postgres=# postgres=# postgres=# CREATE TABLE employee ( postgres(#     ID         int, postgres(#     name       varchar(10), postgres(#     salary     real, postgres(#     start_date date, postgres(#     city       varchar(10), postgres(#     region     char(1) postgres(# ); CREATE TABLE postgres=# postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (1,  'Jason', 4042,  '02/01/94', 'New York', 'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (2,  'Robert',1442,  '01/02/95', 'Vancouver','N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (3,  'Celia', 4000,  '12/03/96', 'Toronto',  'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (4,  'Linda', 40620,  '11/04/97', 'New York', 'N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (5,  'David', 80026,  '10/05/98', 'Vancouver','W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (6,  'James', 4000,  '09/06/99', 'Toronto',  'N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (7,  'Alison',9062,  '08/07/00', 'New York', 'W'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (8,  'Chris', 26020,  '07/08/01', 'Vancouver','N'); INSERT 0 1 postgres=# insert into employee (ID, name,    salary, start_date, city,       region) postgres-#               values (9,  'Mary',  60020,  '06/09/02', 'Toronto',  'W'); INSERT 0 1 postgres=# postgres=# select * from employee;  id |  name  | salary | start_date |   city    | region ----+--------+--------+------------+-----------+--------   1 | Jason  |   4042 | 1994-02-01 | New York  | W   2 | Robert |   1442 | 1995-01-02 | Vancouver | N   3 | Celia  |   4000 | 1996-12-03 | Toronto   | W   4 | Linda  |  40620 | 1997-11-04 | New York  | N   5 | David  |  80026 | 1998-10-05 | Vancouver | W   6 | James  |   4000 | 1999-09-06 | Toronto   | N   7 | Alison |   9062 | 2000-08-07 | New York  | W   8 | Chris  |  26020 | 2001-07-08 | Vancouver | N   9 | Mary   |  60020 | 2002-06-09 | Toronto   | W (9 rows) postgres=# postgres=# -- Using case expressions in statements postgres=# postgres=# SELECT name, postgres-#         CASE WHEN salary > 4000 THEN 'over $4000.00 cost' postgres-#              WHEN salary = 4000 THEN '$4000.00 cost' postgres-#              ELSE 'under $4000.00 cost' postgres-#         END AS cost_range postgres-#         FROM employee postgres-#         LIMIT 8;   name  |     cost_range --------+---------------------  Jason  | over $4000.00 cost  Robert | under $4000.00 cost  Celia  | $4000.00 cost  Linda  | over $4000.00 cost  David  | over $4000.00 cost  James  | $4000.00 cost  Alison | over $4000.00 cost  Chris  | over $4000.00 cost (8 rows) postgres=# postgres=# postgres=# postgres=# drop table employee;