SQL,显示字符串而不是NULL /实际值

时间:2013-06-16 22:20:12

标签: sql database select nvl

我正在完成作业并且遇到了这个问题:

*显示部门名称和所有员工的姓名及其经理身份。状态应该为管理者显示消息“是经理”。对于那些不是经理的人来说,显示的信息是“不是经理”。        还包括空部门,其状态值应为“尚未经理”        显示那些经理人首先跟随那些不是经理和空部门的人。在这些分组中,按字母顺序按员工姓名排序。     这是标题样本。

部门名称员工经理状态*

我知道NVL可以用来计算空值,但是这个问题让我很难过。

与此问题相关的表格是:

EMP:

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)  

部门:

desc dept

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

如果有人能给我一个关于我可能用来显示字符串的功能的提示,而不是值,我会非常感激!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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