SQL Server-在CASE语句中使用小于符号时出现问题 选择FirstName、LastName、Salary、Salary=(Case Employees.Salary 当工资

SQL Server-在CASE语句中使用小于符号时出现问题 选择FirstName、LastName、Salary、Salary=(Case Employees.Salary 当工资,sql,sql-server,Sql,Sql Server,我试图使这个case语句正常工作,但一直在

我试图使这个case语句正常工作,但一直在看起来你在结合语法。您可以删除
员工。工资
,它将起作用

应该起作用的示例:

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;
选择姓氏、姓氏、薪资(大小写)
当工资<40000时,则为“低工资”
当工资<70000时,则为“中等工资”
还有“高薪”
结束)作为“薪资范围”
来自员工;
是查看
CASE()
表达式正确语法的链接。

Select
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;
名字, 姓, 薪水 (案例 当工资<40000时,则为“低工资” 当工资<70000时,则为“中等工资” 还有“高薪” 结束)作为“薪资范围” 来自员工;
您有两个名为Salary的列。您需要将“Salary=”放在列表达式的前面,或在末尾使用“AS”(不是两者都有,并且此处的名称相互冲突)。另外,我认为你不需要第一批员工。案件发生后的工资。以下是我的建议:

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;
选择FirstName
,姓
薪水
,有效期=(案例)
当员工工资<40000时,则为“低工资”
当员工工资<70000时,则为“中等工资”
还有“高薪”
(完)
来自员工;

您可以更轻松地完成:

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;
选择姓氏、姓氏、薪资、,
如果工资<40000,则为“低工资”
当工资<70000时,则为“中等工资”
其他“高薪”作为薪资范围结束
来自员工;

这是MS SQL Server语法,在其他方言中可能有点不同。

您只能执行第一个(您显示的)。第二个选项(
当<40000…
时)将导致错误。很高兴知道!我会改变我的答案。
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;