SQL中关于选择语句的使用

SQL面试题:某表有A、B、C、D四列数据,要求:当A列大于B列数据时选择A列数据,否则选B列;当C列大于D列数据时选择C列数据,否则选D列。

一、建表

select * from exe;

SQL中关于选择语句的使用_第1张图片

 二、IF的使用

IF 表达式:

IF( expr1 , expr2 , expr3 )

表达式说明:

expr1 的值为 TRUE,则返回值为 expr2 
expr1 的值为 FALSE,则返回值为 expr3

实例:

select id,name,if((A>B),A,B) as ABMax,if((C>D),C,D) as CDMax from exe;

运行结果:

SQL中关于选择语句的使用_第2张图片

 三、Case-Then的使用

Case-Then表达式:

Case expr1 Then expr2 Else expr3;

表达式说明:

expr1 的值为 TRUE,则返回值为 expr2 
expr1 的值为 FALSE,则返回值为 expr3

实例:

Select id,name, 
Case When A>B Then A Else B End As ABMax, 
Case When C>D Then C Else D End As CDMax
From exe;

运行结果:

SQL中关于选择语句的使用_第3张图片

四、拓展:关于Case-Then的嵌套使用

源数据:

SQL中关于选择语句的使用_第4张图片

 嵌套语句:

Select id,name, 
Case When A>'90' Then '优秀' Else 
	( Case When A>'80' Then '良好' Else 
		 ( Case When A>'70' Then '中等' Else 
			 ( Case When A>'60' Then '及格' Else '不及格' End 
			 ) End 
		 ) End 
	) End  
as A From exe;

运行结果:

SQL中关于选择语句的使用_第5张图片

语句简化:

Select id,name,Case 
When A>'90' Then '优秀' 
When A>'80' Then '良好' 
When A>'70' Then '中等'  
When A>'60' Then '及格' 
Else '不及格' End  
as A From exe;

运行结果:

SQL中关于选择语句的使用_第6张图片

你可能感兴趣的:(MySQL,领域小记,sql)