【发布时间】:2018-10-18 20:36:50
【问题描述】:
我正在尝试根据 DB2 中先前 CASE 条件获得的结果过滤数据:
下面是过滤数据的初始查询:
SELECT EM.NAME,EM.ID,EM.DIV
CASE DEPT
WHEN '1' THEN 'FIN'
WHEN '2' THEN 'MKT'
WHEN '3' THEN 'IT'
WHEN '4' THEN 'HR' END AS DEPT_DESC
FROM EMPLOYEE_RCD EM;
样本数据:
NAME ID DIV DEPT_DESC
MICHAEL 3334 3 IT
SAMUEL 100922 1 FIN
ORINDA 7363 1 FIN
SARA 8383 2 MKT
RACHAEL 8383 4 HR
MARTIN 33312
SUZY 993 NA NA
MIKE 576 NULL NULL
我试图过滤的结果:
SELECT EM.NAME,EM.ID,EM.DIV
CASE DEPT
WHEN '1' THEN 'FIN'
WHEN '2' THEN 'MKT'
WHEN '3' THEN 'IT'
WHEN '4' THEN 'HR' END AS DEPT_DESC
CASE DEPT_DESC
WHEN DEPT_DESC == '' THEN 'No Dept'
WHEN DEPT_DESC == NA THEN 'No Dept'
WHEN DEPT_DESC == NULL THEN 'No Dept'
FROM EMPLOYEE_RCD EM;
但没有得到结果反而得到错误:
[Code: -104, SQL State: 42601] An unexpected token "== ''" was found following "WHEN DEPT_DESC". Expected tokens may include: "<space>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.22.29
任何帮助,如何过滤数据并获得以下结果:
预期 0/P:
NAME ID DIV DEPT_DESC
MARTIN 33312
SUZY 993 NA NA
MIKE 576 NULL NULL
【问题讨论】: