我需要回答以下问题,其内容DECODE函数的语法
我写了下面的代码
SELECT job_id,
DECODE(job_id,A, 'Ad_Pres',
B,'St_Man',
C,'IT_PROG',
)JOBID, GRADE
FROM emplyee_grade;
ORDER BY job_id
甲骨文告诉我“失踪表达”我在做什么这里错了吗?
感谢您的帮助。
我需要回答以下问题,其内容DECODE函数的语法
我写了下面的代码
SELECT job_id,
DECODE(job_id,A, 'Ad_Pres',
B,'St_Man',
C,'IT_PROG',
)JOBID, GRADE
FROM emplyee_grade;
ORDER BY job_id
甲骨文告诉我“失踪表达”我在做什么这里错了吗?
感谢您的帮助。
您的查询在两个方面有误。
正如已经被其他人则建议,有语法错误,去掉最后一个逗号。
功能,你是按照这个问题做错了。问题是解码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>
很好解释。 – 2014-09-30 17:51:20
谢谢@Patrick。我希望每个SQL问题都有一个测试用例,以减少逆向工程师的时间和精力,说什么? – 2014-09-30 17:58:23
是的,那很好。 – 2014-09-30 18:05:48
要么指定一个默认值或删除最后一个逗号在解码参数 – 2014-09-30 09:01:26
您的查询是错误的两种方式,语法和功能。检查我的答案。 – 2014-09-30 09:08:30