[英]query to return additional column with some condition
表格:Emaployee
列:名称(nvarchar(256)),薪水(十进制(18,2))
现在,我想要附加列的结果
'等级'=
如果工资<15000.00,则为“ A”,
如果25000.00>工资> 15000.00,则为“ B”,
如果工资> 25000.00,则为“ C”
如何为此编写查询?
SELECT name,
salary,
(CASE
WHEN salary<15000 THEN 'A'
WHEN salary>15000 AND salary <25000 THEN 'B'
ELSE 'C'
END) AS grade
FROM employee
尚未尝试以下操作,但也可以使用:
SELECT name,
salary,
IIF (salary<15000, 'A', IIF (salary>15000 AND salary<25000, 'B', IIF (salary>25000, 'C', ))) AS grade
FROM employee
IIF是通过Denali引入T-SQL的,因此最新版本只能用于Denali版本。请检查此T-SQL IIF函数教程
如果薪金<15000.00,则为'Grade'='A';如果薪金> 15000.00,则为'B';如果薪金> 25000.00,则为'C'
规格似乎有缺陷。 您需要回到设计师那里,询问他们哪个级别适用于薪水分别为15000.00和25000.00的员工,因为未指定这些级别。 以下是猜测(我不建议在实践中进行猜测):
SELECT name, salary, 'A' AS Grade
FROM Employee
WHERE Salary BETWEEN 0 AND 14999.99
UNION
SELECT name, salary, 'B' AS Grade
FROM Employee
WHERE Salary BETWEEN 15000.00 AND 24999.99
UNION
SELECT name, salary, 'C' AS Grade
FROM Employee
WHERE Salary >= 25000.00;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.