如果满足条件,则返回其他默认值

时间:2019-09-27 11:37:21

标签: sql

我有一张表,上面有员工人数,他们的工作,他们的合同和他们的工资率。

我需要创建一个选择查询,该查询列出人员的职责,其中有些与职位描述相同,如果满足条件,有些则具有其他职责,但未在源数据库中列出,并且具有不同的合同和薪资水平。已经列出的。

条件:每当一名雇员是服务员时,他们也将担任“大律师助理”,而大律师助理角色则是“休闲”人员,工资为“ 8.00”

表名作业:

Employee ID, Job, Contract, Pay rate,  
123, Waiter, Permanent, 8.15,  
234, Barista, Permanent, 9.15,  
345, Chef, Casual, 8.05,  
456, Waiter, Permanent, 9.00,  
567, Manger, Salary, 0.00,  

select查询应该给我输出:

Employee ID, Job, Contract, Pay rate,  
123, **Waiter**, Permanent, 8.15,  
**123, Bar assistant, Casual, 8.00**,    
234, Barista, Permanent, 9.15,  
345, Chef, Casual, 8.05,  
456, **Waiter**, Permanent, 9.00,  
**456, Bar assistant, Casual, 8.00**,  
567, Manger, Salary, 0.00,  

我已经尝试了一些case语句变体,但它们只返回一个值。

1 个答案:

答案 0 :(得分:0)

您似乎想要union all

select EmployeeID, Job, Contract, Payrate
from t
union all
select EmployeeID, 'Bar assistant', 'Casual', 8.00
from t
where job = 'Waiter'
order by EmployeeId, Payrate desc;