0

我正在处理一项任务,但遇到了这个问题:

*显示部门名称和所有员工的姓名以及他们的经理状态。状态应该为那些是经理的人显示消息“是经理”。对于那些不是经理的人,请显示“不是经理”的信息。还包括空部门,其中状态值应为“还没有经理”<br> 首先显示那些是经理的人,然后是那些不是经理的人,最后是空部门。在这些分组中,按员工姓名的字母顺序排序。这是标题示例。

部门名称 员工经理状态*

我知道 NVL 可以用来解释空值,但是这个问题让我很困惑。

与此问题相关的表格是:

雇员:

Name     Null     Type         
-------- -------- ------------ 
EMPNO    NOT NULL NUMBER(4)    
ENAME             VARCHAR2(10) 
JOB               VARCHAR2(9)  
MGR               NUMBER(4)    
HIREDATE          DATE         
SAL               NUMBER(7,2)  
COMM              NUMBER(7,2)  
DEPTNO   NOT NULL NUMBER(2)  

部门:

描述部门

Name   Null     Type         
------ -------- ------------ 
DEPTNO NOT NULL NUMBER(2)    
DNAME           VARCHAR2(14) 
LOC             VARCHAR2(13) 

如果有人可以给我一个提示,我可以使用哪个函数来显示字符串,而不是值,我会非常感激!

4

2 回答 2

0

这是您的提示:使用CASE表达式为“经理状态”列分配值,例如:

CASE WHEN condition 
        THEN 'is a Manager'
        ELSE 'is NOT a Manager'
   END as Manager_Status

“条件”将是一些值,如果“真”标识经理。

于 2013-06-16T22:26:39.033 回答
0

根据您使用的数据库,有几种方法可以查看字符串而不是 NULL 结果。对于您的数据库,请尝试查看 NVL、NULLIF、NVL2、COALESCE、CASE-WHEN 子句 (Oracle) 或 IIF 函数 (Firebird/Interbase)。我不知道您使用哪个数据库,但其中大多数对于最流行的数据库都很常见。

于 2013-06-16T22:32:39.080 回答