開発環境
- OS: OS X Lion - Apple
- データベース言語: SQL
- リレーショナルデータベース: MySQL
『初めてのSQL』(Alan Beaulieu 著、株式会社クイープ 翻訳、オライリー・ジャパン、2006年、ISBN4-87311-281-8) の11章(条件ロジック), 11.4(練習問題)11-1を解いてみる。
11-1.
入出力結果(Terminal)
$ mysql -u lrngsql -p bank
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.18 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> desc employee;
+--------------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+----------------------+------+-----+---------+----------------+
| emp_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| fname | varchar(20) | NO | | NULL | |
| lname | varchar(20) | NO | | NULL | |
| start_date | date | NO | | NULL | |
| end_date | date | YES | | NULL | |
| superior_emp_id | smallint(5) unsigned | YES | MUL | NULL | |
| dept_id | smallint(5) unsigned | YES | MUL | NULL | |
| title | varchar(20) | YES | | NULL | |
| assigned_branch_id | smallint(5) unsigned | YES | MUL | NULL | |
+--------------------+----------------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)
mysql> select title from employee
-> ;
+--------------------+
| title |
+--------------------+
| President |
| Vice President |
| Treasurer |
| Operations Manager |
| Loan Manager |
| Head Teller |
| Teller |
| Teller |
| Teller |
| Head Teller |
| Teller |
| Teller |
| Head Teller |
| Teller |
| Teller |
| Head Teller |
| Teller |
| Teller |
+--------------------+
18 rows in set (0.00 sec)
mysql> select emp_id,
-> case
-> when title like '%President' or
-> title = 'Treasurer' or
-> title = 'Loan Manager' then 'Management'
-> when title = 'Operations Manager' or
-> title like '%Teller' then 'Operations'
-> else 'Unknown'
-> end title
-> from employee;
+--------+------------+
| emp_id | title |
+--------+------------+
| 1 | Management |
| 2 | Management |
| 3 | Management |
| 4 | Operations |
| 5 | Management |
| 6 | Operations |
| 7 | Operations |
| 8 | Operations |
| 9 | Operations |
| 10 | Operations |
| 11 | Operations |
| 12 | Operations |
| 13 | Operations |
| 14 | Operations |
| 15 | Operations |
| 16 | Operations |
| 17 | Operations |
| 18 | Operations |
+--------+------------+
18 rows in set (0.00 sec)
mysql> select emp_id,
-> case title
-> when 'President' then 'Management'
-> when 'Vice President' then 'Management'
-> when 'Treasurer' then 'Management'
-> when 'Loan Manager' then 'Management'
-> when 'Operations Manager' then 'Operations'
-> when 'Head Teller' then 'Operations'
-> when 'Teller' then 'Operations'
-> else 'Unknown'
-> end title from employee;
+--------+------------+
| emp_id | title |
+--------+------------+
| 1 | Management |
| 2 | Management |
| 3 | Management |
| 4 | Operations |
| 5 | Management |
| 6 | Operations |
| 7 | Operations |
| 8 | Operations |
| 9 | Operations |
| 10 | Operations |
| 11 | Operations |
| 12 | Operations |
| 13 | Operations |
| 14 | Operations |
| 15 | Operations |
| 16 | Operations |
| 17 | Operations |
| 18 | Operations |
+--------+------------+
18 rows in set (0.00 sec)
mysql> quit;
Bye
$
0 コメント:
コメントを投稿