0

我有一个表“Emp”如下

在此处输入图像描述

我想添加另一列描述所有员工的等级

Sal > 100 是'G1',

Sal > 200 是'G2',

Sal > 300 是'G3',

全部休息为“NA”

我想使用“解码”命令来解决这个问题。请帮我处理 SQL 查询

在此处输入图像描述

4

3 回答 3

3
select 
id,name,sal,
case when sal between 100 and 199 then 'G1'
when sal between 200 and 299 then 'G2'
when sal>=300 then 'G3'
else 'NA' end as grade
from Emp
于 2013-08-13T12:01:59.773 回答
1

感谢大家帮助我找到答案。

SELECT Name,
       Sal,
       DECODE (TRUNC ( (sal - 1) / 100),
               0, 'NA',
               1, 'G 1',
               2, 'G 2',
               3, 'G 3')
          AS Grade
  FROM Employee;
于 2013-08-13T13:38:46.500 回答
0

首先,您必须在表中添加列

Alter table Emp
Add Grade varchar(10)

比你必须更新你的新领域

update Emp Set Grade= 'G3' where Sal >= 300 
update Emp Set Grade= 'G2' where Sal >= 200 and < 300
update Emp Set Grade = 'G1' where sal >= 100
update Emp Set Grade = 'NA' where sal < 100
于 2013-08-13T12:04:01.173 回答