我已经编写了一些代码(如下),如果组织级别低于3,则会尝试选择职位名称和分配给职位的员工人数。
然后我试图插入另外两个条件。当OrganizationLevel低于2时,职称变为大写。
但是我正在努力为这个SQL实现第二个条件。当OrganizationLevel = 1时,职位名称应显示' MANAGING DIRECTOR'。
有人可以帮助我实现这个目标吗?这就是我到目前为止所拥有的:
with T as( SELECT IIF ( OrganizationLevel < 2, UPPER ( IIF ( OrganizationLevel=1, 'MANAGING DIRECTOR', JobTitle )), JobTitle ) AS JobTitle , OrganizationLevel
from HumanResources.Employee)
select count(*) AS NumOfEmp,JobTitle from T
where OrganizationLevel < 3 group by JobTitle order by JobTitle;
谢谢。
答案 0 :(得分:1)
您应该尝试使用CASE表达式:
with T as(
SELECT case
when OrganizationLevel = 1 then 'MANAGING DIRECTOR'
when OrganizationLevel < 2 then upper(JobTitle)
else JobTitle
end AS JobTitle,
OrganizationLevel
from HumanResources.Employee)
select count(*) AS NumOfEmp, JobTitle
from T
where OrganizationLevel < 3
group by JobTitle
order by JobTitle;