IF
1.用于SQL语句中的判断条件
if(条件表达式,表达式1,表达式2)
select id,name from sh_goods where if(score=5,score,0) 判断 =5返回score 不然返回0
2.用于函数 存储过程
if 条件表达式1 when 语句列表
[elseif 条件表达式2 then 语句列表]...[else 语句列表]
END if
例子:
delimiter $$
CREATE function procedure isnull(in val int)
BEGIN
if val IS null
then select "THE parameter is null";
else
select 'THE parameter is not null'
END if;
END
$$
DELIMITER;
case
1.用于sql语句
case 条件表达式 when 表达式1 then 结果1
[when 表达式2 then 结果2]...[else 结果] end
或者
case when 条件表达式1 then 结果1
[when 条件表达式2 then 结果2] ...[else 结果] end
例子
select id,name,
(case when price<50 then'小额商品'
when price<100 then'低价商品'
when price<200 then'平价商品'
else '大额商品' end) as desc_price
from sh_goods;
2.用于函数 存储过程
case 条件表达式 when 表达式1 then 语句列表
[when 表达式2 then 语句列表]...[else 语句列表]
end case
或者
case when 条件表达式1 then 语句列表
[when 条件表达式2 then 语句列表] ...[else 语句列表]
end case
例子:
delimiter $$
CREATE function procedure proc_level(in score decimal(5,2))
BEGIN
case
when score>89 hen select"优秀";
when score>79 hen select"良好";
when score>69 hen select"中等";
when score>59 hen select"及格";
else select"不及格";
END case;
END
$$
DELIMITER;