哀求:根据奖金等级表的数值区间,返回奖金对应的等级。
1、链接外部数据:数据--现有链接--浏览更多,在路径中选择数据Excel文件和目标事情表,建立数据链接。
详细步骤参考前面所发的SQL干系文章。

2、编写SQL语句。2.1、利用switch函数,SQL语句为:
select 姓名,奖金,switch(奖金<200,\"大众D级\公众,奖金<300,\公众C级\"大众,奖金<500,\公众B级\公众,奖金>=500,\"大众A级\公众) as 奖金等级 from [奖金$a1:b11]
switch函数直接判断数值,若数值小于200,返回D级;数值小于300返回C级;数值小于500,返回B级;余下的数值条件要变革为>=500返回A级而不是<=700。
2.2、利用iif函数,SQL语句为:select 姓名,奖金,iif(奖金<200,\公众D级\"大众,iif(奖金<300,\"大众C级\"大众,iif(奖金<500,\公众B级\"大众,\公众A级\"大众))) as 奖金等级 from [奖金$a1:b11]
其基本思路和switch函数相同,类似事情表函数if的嵌套。
2.3、利用betweent...and,SQ语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 between b.最小值 and b.最大值
以戴苏明同学为例子,在SQL代码运行的时候,将戴苏明同学的奖金逐一和奖金等级表中的数值进行比拟,符合区间的就返回区间等级。其他同学亦然。
但是,当奖金超出最大值700的时候就会取不到该条数据。
如刘平的奖金701并不在betweent...and的区间内,返回的结果中没有刘平的数据。
2.4、利用Where比较大小,sql语句为:select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 >=b.最小值 and a.奖金<=b.最大值
此方法事理和betweent...and一样,当奖金超过最大值700时,数据将有遗漏(刘平)。
当奖金的最大值为700的时候,以上四种方法都得出同样的结果。
当奖金最大值超过700的时候,3、4两个方法将遗漏奖金大于700的数据。
因此,可在设计奖金等级表的时候,可以将最大值700改为一个比较大的数值,使奖金再高也不会超过,则四种方位皆可。
如变动奖金等级表的最大值700为70000,这么大的一个范围,则四种方法都适用。