case when then else end MySQL基础表和数据

MySQL基础表和数据

简单Case函数 

类似与Java中的switch case(一个case一种情况),常用

SQL如下:

select 
case student_name 
when 'Jef' then concat(student_name, '.tu')
when 'Ran' then concat(student_name, '.ren')
else concat(student_name, '.xu')
end '姓名'
from interest;

更经典的使用场景:已知数据按照另外一种方式进行分组。例如,已知国家和人口,要求按照洲来统计人数

Case搜索函数

上面的SQL等效于下面这种方式:如果条件的字段名是一样的,并且是用于=操作的,建议采用简单case函数,这样比较简洁,但是写判断式还是推荐用这种。 

select 
case  
when student_name = 'Jef' then concat(student_name, '.tu')
when student_name = 'Ran' then concat(student_name, '.ren')
else concat(student_name, '.xu')
end '姓名'
from interest;

更经典的使用场景:可以用这个方法来判断工资的等级,并统计每一等级的人数

注意项:有一个需要注意的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。 

 

用一个SQL语句完成不同条件的分组

常用语行列转换,使用case进行行列转换

猜你喜欢

转载自www.cnblogs.com/tufujie/p/8998860.html