首页 » 网站推广 » phpswitch断定区间技巧_Excel SQL方法完成数值区间查询

phpswitch断定区间技巧_Excel SQL方法完成数值区间查询

访客 2024-11-01 0

扫一扫用手机浏览

文章目录 [+]

哀求:根据奖金等级表的数值区间,返回奖金对应的等级。

1、链接外部数据:数据--现有链接--浏览更多,在路径中选择数据Excel文件和目标事情表,建立数据链接。

phpswitch断定区间技巧_Excel SQL方法完成数值区间查询

详细步骤参考前面所发的SQL干系文章。

phpswitch断定区间技巧_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,这么大的一个范围,则四种方法都适用。

相关文章