如图,关于Oracle中DECODE()函数的问题?

SQL> SELECT ename 姓名, DECODE('job', 'CLERK', '店员', 'SALESMAN', '推销员', 'MANAGER', '经理', 'ANA
LYST', '分析员', 'PRESIDENT', '总裁') 职位 FROM emp;

姓名
---------- -
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

已选择14行。

为什么运行后是这个样子呢?


largeQ
浏览 193回答 3
3回答

互换的青春

SELECT ename 姓名, DECODE(job, 'CLERK', '店员', 'SALESMAN', '推销员', 'MANAGER', '经理', 'ANALYST', '分析员', 'PRESIDENT', '总裁') 职位 FROM emp;job是个字段,不用加引号的吧!

德玛西亚99

你可以直接用case解决:select ename 姓名,case job when 'CLERK' then 店员' when 'SALESMAN' then '推销员' when 'MANAGER' then '经理'when 'ANALYST' then '分析员' when 'PRESIDENT' then '总裁' else '未知' end as 职位from emp

杨魅力

SQL> SELECT ename 姓名, DECODE(job, 'CLERK', '店员', 'SALESMAN', '推销员', 'MANAGER', '经理', 'ANALYST', '分析员', 'PRESIDENT', '总裁') 职位 FROM emp;job不加引号
打开App,查看更多内容
随时随地看视频慕课网APP