简单的代码sql

时间:2016-10-01 06:39:07

标签: sql

任何人都可以告诉我为什么这段代码不起作用,我把所有的员工评级都当作0

select Fname,lname, salary, salary =( 
   case when salary>0 and salary <5000 then 1
   when SALARY>5000 and salary <7000 then 2 
   else 3 end )
employeegrade from employee;

4 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server,则在执行给定查询时会出现以下错误。  “'员工等级'附近的语法不正确。” 原因是您试图将计算结果分配给两个不同的列名,即。薪水和员工等级。

如果您想计算员工成绩,可以使用以下查询。

   select Fname,lname, salary, employeegrade =( 
         case when salary>0 and salary <5000 then 1
         when SALARY>5000 and salary <7000 then 2 
          else 3 end )
    from employee;

OR

  select Fname,lname, salary,  
         case when salary>0 and salary <5000 then 1
         when SALARY>5000 and salary <7000 then 2 
          else 3 end  as employeegrade
    from employee;

答案 1 :(得分:0)

尝试以下代码

public enum OptionalField
{
    None = 0,
    RuleOwner = 1,
    Rule = 2,
    RuleAndRuleOwner = 3,
    etc.
}

答案 2 :(得分:0)

尝试删除salary =这被解释为比较运算符,因此0为false就是结果。

答案 3 :(得分:0)

试试这个

select Fname,lname, salary, 
case when salary > 0 and salary < 5000 then 1
when SALARY > 5000 and salary < 7000 then 2 
else 3 end as employeegrade
from employee;