请随时建议更改标题。
我有一个“聘用日期”列,我想根据以下条件根据员工的工作年限分配特定的等级:
1-4 years = T1
5-9 years = T2
10-15 years = T3
15+ years = T4
例如,如果雇用日期为2002年7月12日,则该级别应等于T4。
我正在将日期与今天的日期进行比较。
10/03/2016 = T1
01/18/2010 = T2
01/14/2006 = T3
12/07/2002 = T4
有什么办法可以做到这一点?
我们将非常感谢您的帮助。
答案 0 :(得分:3)
使用CASE语句获取所需的结果集。
SELECT
CASE
WHEN hire_date < DATEADD(YY,-15,GETDATE()) THEN 'T4'
WHEN hire_date < DATEADD(YY,-10,GETDATE()) THEN 'T3'
WHEN hire_date < DATEADD(YY,-5,GETDATE()) THEN 'T2'
ELSE 'T1'
END
FROM your_table
答案 1 :(得分:1)
您可以在使用struct时使用大小写。即:
select case
when datediff(year, hireDate, getDate()) >= 15 then 'T4'
when datediff(year, hireDate, getDate()) >= 10 then 'T3'
when datediff(year, hireDate, getDate()) >= 5 then 'T2'
else 'T1'
end as egroup, id, hiredate
from employees;