mysl 常用函数 union all if ifnull exists case when

1.union all

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

2.if ifnull

把salary表中的女改成男,男改成女:

update salary set sex = if( sex = '男','女','男');

if(true,a,b),  if(false,a,b) 这个就是第一个如果是true,就等于a,false就等于b,有点像三元表达式

ifnull(null, a),ifnull(a,b),    ifnull里有两个数,如果第一个不是null,是a非null,就都等于a, 如果a=Null,就都为a。

eg:

SELECT IFNULL(NULL,"11"); -> 11

SELECT IFNULL("00","11"); -> 00

3.exists
https://blog.csdn.net/wqc19920906/article/details/79800374

4.CASE WHEN 及 SELECT CASE WHEN的用法

--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
 
--Case搜索函数 
CASE WHEN sex = '1' THEN '男' 
WHEN sex = '2' THEN '女' 
ELSE '其他' END  

SELECT 
CASE WHEN salary <= 500 THEN '1' 
WHEN salary > 500 AND salary <= 600  THEN '2' 
WHEN salary > 600 AND salary <= 800  THEN '3' 
WHEN salary > 800 AND salary <= 1000 THEN '4' 
ELSE NULL END salary_class, -- 别名命名
COUNT(*)  FROM    Table_A 
GROUP BY 
CASE WHEN salary <= 500 THEN '1' 
WHEN salary > 500 AND salary <= 600  THEN '2' 
WHEN salary > 600 AND salary <= 800  THEN '3' 
WHEN salary > 800 AND salary <= 1000 THEN '4' 
ELSE NULL END; 

ELSE NULL END salary_class, -- 别名命  

 参考:http://www.cnblogs.com/aipan/p/7770611.html

posted @ 2019-04-09 10:04  酸奶加绿茶  阅读(382)  评论(0编辑  收藏  举报