IF 表达式
IF( expr1 , expr2 , expr3 )
expr1 的值为 TRUE,则返回值为 expr2
expr1 的值为FALSE,则返回值为 expr3
员工id为偶数,且不以M开头,满足则有薪水作为奖金,再者为0;并以员工id为序
select employee_id,
if( employee_id % 2 =1 and name not like "M%",salary,0) as bonus
from Employees
order by employee_id
IFNULL 表达式
IFNULL( expr1 , expr2 )
判断第一个参数expr1是否为NULL:
如果expr1不为空,直接返回expr1;
如果expr1为空,返回第二个参数 expr2
SELECT IFNULL(NULL,"11");
-> 11
SELECT IFNULL("00","11");
-> 00
以case开头end结尾
1、case when 条件1 then 取值1 else 不满足条件的取值 end
2、case 字段 when 条件值 then 满足条件后的结果 else 不满足条件的结果 end
3、case when 条件表达式1 then 满足条件后的结果1 else 不满足条件的结果1
性别替换
update Salary
set sex=(
case sex when "m" then "f" else "m" end
);
day3
concat(a,b)拼接字符串
left(str,n)取从左第N个字符,right(str,n)取从右第N个字符
select user_id,
concat(upper(left(name,1)),
lower(right(name,length(name)-1))
) as name
from users
order by user_id