▼フロー制御①(IF文)▼
条件がTRUEの場合はTRUEの処理、FALSEの場合はFALSEの処理をする。
SELECT フィールド名,IF(条件文,TRUE処理,FALSE処理) FROM テーブル名;
※エイリアスを付ける場合は、IF()に付ける。
例:「staff」テーブルの名前、給与を表示、さらに給与が30万以下のデータは「もうちょっとほしい」、それ以外のデータ「もっと給料上げろ」と表示
SELECT
name,
salary,
IF(salary <= 300000,
'もうちょっとほしい',
'もっと給料上げろ') AS message
FROM staff;
以下のように表示、
⇒IF.bmp
※IF(salary <= 300000,'もうちょっとほしい','もっと給料上げろ')の命令によって、表示する際に新たにフィールドが作られる。
⇒データが増えるわけではないので注意
▼フロー制御②(CASE文)▼
●複数条件の場合※
PHPのelseif、switchに相当
CASE
WHEN 条件1 THEN 条件1のTRUE処理
WHEN 条件2 THEN 条件2のTRUE処理
WHEN 条件3 THEN 条件3のTRUE処理
ELSE FALSE処理
END
※CASE~ENDまでは分かり易いように()括弧でくくったほうが良い
例:「staff」テーブルの部署番号が1の場合は「経理」、2の場合は「営業」、3の場合は「開発」と表示せよ。
SELECT name, section_id,
(CASE
WHEN section_id = 1 THEN '経理'
WHEN section_id = 2 THEN '営業'
WHEN section_id = 3 THEN '開発'
ELSE NULL
END) AS section_name
FROM staff;
以下のように表示、
⇒CASE.bmp
※IF文の時同様、section_nameというフィールドが表示する際に作られ、
最終更新:2012年01月19日 23:23