Select FirstName, LastName, Salary, Salary = (Case Employees.Salary
When salary < 40000 then 'Low Pay'
When salary < 70000 then 'Medium Pay'
Else 'High Pay'
End) as 'PayRange'
From Employees;
我正在尝试使这个案例语句工作,但在&lt;上继续得到错误的语法错误符号。薪水的数据类型是数字。我的问题是什么?
答案 0 :(得分:4)
看起来你正在结合语法。您可以删除Employees.Salary
,它会有效。
应该有效的示例:
Select FirstName, LastName, Salary, (Case
When salary < 40000 then 'Low Pay'
When salary < 70000 then 'Medium Pay'
Else 'High Pay'
End) as 'PayRange'
From Employees;
Here是一个链接,可以查看CASE()
表达式的正确语法。
答案 1 :(得分:2)
Select
FirstName,
LastName,
Salary,
(Case
When Salary < 40000 then 'Low Pay'
When Salary < 70000 then 'Medium Pay'
Else 'High Pay'
End) as 'PayRange'
From Employees;
答案 2 :(得分:1)
您有两列名为Salary。你需要把&#34; Salary =&#34;在列表达式前面或使用&#34; AS&#34;最后(不是两个,你在这里有相互矛盾的名字)。此外,在案例发生后,我认为您不需要第一个Employees.Salary。这是我的建议:
Select FirstName
, LastName
, Salary
, PayRange = (Case
When Employees.Salary < 40000 then 'Low Pay'
When Employees.Salary < 70000 then 'Medium Pay'
Else 'High Pay'
End)
From Employees;
答案 3 :(得分:0)
你可以更轻松地做到这一点:
Select FirstName, LastName, Salary,
CASE WHEN salary < 40000 THEN 'Low Pay'
WHEN salary < 70000 THEN 'Medium Pay'
ELSE 'High Pay' END AS PayRange
FROM Employees;
这是MS SQL Server语法,可能与其他方言略有不同。