首页 > 解决方案 > 在 SQL 中应用动态 between 语句

问题描述

我有两个 SQL 表。员工和薪资范围。我正在使用 TSQL

雇员:

Name|ID|Salary
John|1 |1000
Jack|2 |5000
Mark|3 | 0

薪资范围:

PayGrade|SalaryMin|SalaryMax
Low     |0        |999
Med     |1000     |4999
High    |5000     |

如何在 SQL 中实现以下目标?我知道在这些值之间使用 CASE 时我将如何做到这一点,例如Case when Salary between 0 and 1000 then 'Low' as Paygrade

我如何加入表格并“动态”应用此转换,例如当薪金等级中的值发生变化时,我的计算也可以。

输出:

Name|PayGrade|Salary
John|Med     |1000
Jack|High    |5000
Mark|Low     |0

标签: sqldatabasetsql

解决方案


您的思考过程是正确的,除了您需要将“BETWEEN”子句放在 WHERE 子句而不是 SELECT 中。

示例 sql -

select name, salary, Paygrade from employees e join salaryband s
where e.salary between s.salarymin and s.salarymax;

推荐阅读