我需要回答以下問題,其內容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