我正在完成作业并且遇到了这个问题:
*显示部门名称和所有员工的姓名及其经理身份。状态应该为管理者显示消息“是经理”。对于那些不是经理的人来说,显示的信息是“不是经理”。 还包括空部门,其状态值应为“尚未经理” 显示那些经理人首先跟随那些不是经理和空部门的人。在这些分组中,按字母顺序按员工姓名排序。 这是标题样本。
部门名称员工经理状态*
我知道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)
如果有人能给我一个关于我可能用来显示字符串的功能的提示,而不是值,我会非常感激!
答案 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)。我不知道你使用哪个数据库,但大多数数据库对大多数流行的数据库都很常见。