if()函数
if(expr1,expr2,expr3)
expr1 的值为 TRUE,则返回值为 expr2
expr1 的值为FALSE,则返回值为 expr3
案例:
select (6>10,'正确','错误')====>错误
select(6<10,'正确','错误')====>正确
SQL中无法使用上述方法:
上述语句在SQL中等价与下述语句
if(6>10)
select '正确'
else
select '错误'
CASE函数
case用法一(相当于 java中的switch case语句)
case要判断的字段或表达式
when常量1 then要显示的值1或语句1;
when常量2 then 要显示的值2或语句2;
else要显示的值n或语句n;
end
案例:
name | sex | age | score_chinese | score_math | score_english |
张三 | 1 | 16 | 85 | 56 | 90 |
李四 | 2 | 15 | 96 | 75 | 63 |
王二 | 1 | 17 | 99 | 79 | 75 |
赵五 | 1 | 16 | 75 | 90 | 88 |
案例:
select name,
(case sex when 1 then'男' when 2 then '女' else '未知 end)
from student
case用法二(相当于 java中的多重if语句)
case
when条件1 then 要显示的值1或语句1
when条件2 then 要显示的值2或语句2
else 要显示的值n或语句n
end
select name, score_math,
case
when score_math>=60 then '及格'
when score_math< 60 then '及格'
end as 数学成绩
from student
IFNULL()函数
IFNULL(expr1,expr2)
expr1 不为 NULL,返回值为 expr1; 否则返回值为 expr2
SQL中使用 isnull()函数
mysql:
SELECT IFNULL(1,0) ===> 1
SELECT IFNULL(NULL,6);===> 6
sql:
SELECT ISNULL(1,0) ===> 1
SELECT ISNULL(NULL,6);===> 6