上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.3.6 案例分析
假如公司即将成立20周年,打算给全体员工发放一个周年庆礼品。发放礼品的规则如下:
● 截至2020年入职年限不满10年的员工,男性员工的礼品为手表一块,女性员工的礼品为化妆品一套;
● 截至2020年入职年限满10年且不满15年的员工,男性员工的礼品为手机一部,女性员工的礼品为项链一条;
● 截至2020入职年限满15年的员工,不论男女,礼品统一为电脑一台。
现在,人事部门需要知道为每位员工发放什么礼品。如何通过查询语句得到这些信息呢?
搜索CASE表达式非常适合进行这类逻辑条件的处理,我们可以使用以下语句:
除搜索CASE表达式外,我们还使用了EXTRACT函数提取员工的入职年份。以上查询适用于Oracle、MySQL以及PostgreSQL。
查询返回的结果如下:
Microsoft SQL Server可以使用DATAPART函数提取日期中的信息,例如:
SQLite可以使用STRFTIME函数提取日期中的信息,例如:
STRFTIME函数返回的数据类型为字符串,我们通过CAST函数将其转换为整数。