MYSQL(自分が書いた社内Wikiから勝手に転載)

MYSQLのIF文は、使いこなせば結構便利です。ネットにはなぜか

SELECT IF(2>1, "yes", "no")

こんな例文しか載っていなくてわかりづらいので、汎用的な例文とかを残しておきます。

 create table tamagoya_menu (lunch_code varchar(3), menu varchar(255), main_flag char(1));

 +------------+--------------+------+-----+---------+-------+
 | Field      | Type         | Null | Key | Default | Extra |
 +------------+--------------+------+-----+---------+-------+
 | lunch_code | char(3)      | YES  |     | NULL    |       |
 | menu       | varchar(255) | YES  |     | NULL    |       |
 | main_flag  | char(1)      | YES  |     | NULL    |       |
 +------------+--------------+------+-----+---------+-------+

 insert into tamagoya_menu values('001', 'カニクリームコロッケ', 't');
 insert into tamagoya_menu values('001', 'あじ塩焼', 'f');
 insert into tamagoya_menu values('001', 'ホイコーロー', 'f');
 insert into tamagoya_menu values('001', 'ボロニアソーセージ', 'f');
 insert into tamagoya_menu values('001', 'スパゲティーナポリタン', 'f');
 insert into tamagoya_menu values('001', 'カボチャサラダ', 'f');
 insert into tamagoya_menu values('001', 'レモン', 'f');
 insert into tamagoya_menu values('002', '五目とり釜めし', 't');
 insert into tamagoya_menu values('002', 'まぐろ味噌漬焼', 'f');
 insert into tamagoya_menu values('002', '金平ごぼう', 'f');
 insert into tamagoya_menu values('002', '冷やっこ', 'f');
 insert into tamagoya_menu values('002', '若鶏磯辺揚', 'f');
 insert into tamagoya_menu values('002', 'ほうれんそうゴマ和え', 'f');
 insert into tamagoya_menu values('002', '厚焼玉子', 'f');
 insert into tamagoya_menu values('002', 'うずら豆', 'f');

 +------------+------------------------+-----------+
 | lunch_code | menu                   | main_flag |
 +------------+------------------------+-----------+
 | 001        | カニクリームコロッケ   | t         |
 | 001        | あじ塩焼               | f         |
 | 001        | ホイコーロー           | f         |
 | 001        | ボロニアメ[セージ      | f         |
 | 001        | スパゲティーナポリタン | f         |
 | 001        | カボチャサラダ         | f         |
 | 001        | レモン                 | f         |
 | 002        | 五目とり釜めし         | t         |
 | 002        | まぐろ味噌漬焼         | f         |
 | 002        | 金平ごぼう             | f         |
 | 002        | 冷やっこ               | f         |
 | 002        | 若鶏磯辺揚             | f         |
 | 002        | ほうれんそうゴマ和え   | f         |
 | 002        | 厚焼玉子               | f         |
 | 002        | うずら豆               | f         |
 +------------+------------------------+-----------+

よくわからない例かもしれませんが、以下は「main_flagがtならlunch_codeを、fならmenuをselectする」式です。

 select if(main_flag = 't', lunch_code,     menu      ) as new_menu from tamagoya_menu;
           /   条件式   /  条件がtrue  / 条件がfalse /

 +------------------------+
 | new_menu               |
 +------------------------+
 | 001                    |
 | あじ塩焼               |
 | ホイコーロー           |
 | ボロニアメ[セージ      |
 | スパゲティーナポリタン |
 | カボチャサラダ         |
 | レモン                 |
 | 002                    |
 | まぐろ味噌漬焼         |
 | 金平ごぼう             |
 | 冷やっこ               |
 | 若鶏磯辺揚             |
 | ほうれんそうゴマ和え   |
 | 厚焼玉子               |
 | うずら豆               |
 +------------------------+

もちろん、表結合やグループ化なども行え、結構使い勝手がいいです。