1. coalesce() —返回第一个非空值
select coalesce(null,2,3); // Return 2
select coalesce(null,null,3); // Return 3
select coalesce(1,2,3); // Return 1
select coalesce(NULL, NULL, NULL, NULL); // Return NULL
2.case when then else end —(类似if else)
######### 2.1
CASE column
WHEN value1 THEN result1
WHEN value2 THEN result2
......
ELSE resultN
END
######### 2.2
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
......
ELSE resultN
END
######### 2.3 按范围更新指定条件的的数据
UPDATE salary
SET salary =
CASE WHEN salary <= 10000 THEN salary * 1.2
WHEN salary >= 10001 AND salary <= 20000 THEN salary * 1.15
ELSE salary -- 必须加上 ELSE salary,否则不用修改的数据都会被改成null
END;
left join 的 区别
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
3 := 和 =的区别
(=是判断的意思,返回0或1)
只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。
鉴于此,用变量实现行号时,必须用:=
不只在set和update时时赋值的作用,在select也是赋值的作用