我需要回答以下问题,其中包含
我写了以下代码
SELECT job_id,
DECODE(job_id,A, 'Ad_Pres',
B,'St_Man',
C,'IT_PROG',
)JOBID, GRADE
FROM emplyee_grade;
ORDER BY job_id
甲骨文告诉我"缺少表情"我在这做错了什么?
感谢您的帮助。
答案 0 :(得分:3)
DECODE(job_id,'A', 'Ad_Pres',
'B','St_Man',
'C','IT_PROG', <-- take this comma away
)
带走额外的逗号,我相信A,B,C需要单引号。
答案 1 :(得分:3)
您的查询有两种错误。
正如其他人已经建议的那样,语法错误,删除最后一个逗号。
功能,根据问题你做错了。问题是解码JOB_ID
以显示所需的GRADEs
,如图所示。
所以,正确的查询是:
SQL> WITH DATA AS(
2 SELECT 'AD_PRES' JOB_ID FROM DUAL UNION ALL
3 SELECT 'ST_MAN' JOB_ID FROM DUAL UNION ALL
4 SELECT 'IT_PROG' JOB_ID FROM DUAL UNION ALL
5 SELECT 'THE REST' JOB_ID FROM DUAL)
6 SELECT job_id,
7 DECODE(JOB_ID, 'AD_PRES','A','ST_MAN','B','IT_PROG','C','THE REST','D','DEFAULT') GRADE
8 FROM DATA
9 /
JOB_ID GRADE
-------- -------
AD_PRES A
ST_MAN B
IT_PROG C
THE REST D
SQL>