Fórum Função CASE Simples e CASE Pesquisada #496900
07/10/2014
0
Qual a real diferença entre a função CASE Simples e CASE Pesquisada do Oracle?
No meu ponto de vista, tudo o que eu faço com Case Simples eu consigo fazer com Case Pesquisada e vice-versa.
Tem algum momento específico que terei que utilizar um método ou outro?
Segue um exemplo de ambas:
--CASE Simples
SELECT LAST_NAME, HIRE_DATE,
TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/12) YEARS,
TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) "YEARS DIVIDED BY 5",
CASE TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE) / 60)
WHEN 0 THEN 'Intern'
WHEN 1 THEN 'Junior'
WHEN 2 THEN 'Intermediate'
WHEN 3 THEN 'Senior'
ELSE 'Furniture'
END LOYALTY
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (60,10);
--CASE Pesquisada
SELECT LAST_NAME, HIRE_DATE,
TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/12) YEARS,
TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) YEARS,
CASE
WHEN TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) < 1 THEN 'Intern'
WHEN TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) < 2 THEN 'Intern'
WHEN TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) < 3 THEN 'Intern'
WHEN TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)/60) < 4 THEN 'Intern'
ELSE 'Furniture'
END LOYALTY
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (60,10);
Eu utilizo o Oracle 11g
Marcus Almeida
Curtir tópico
+ 0Posts
07/10/2014
Jair N.
Gostei + 0
07/10/2014
Marcus Almeida
Gostei + 0
24/11/2014
Marisiana Battistella
Também gostaria de saber se existe alguma diferença...
A primeira coisa que pensei é que a diferença possa estar na execução do SQL, talvez o Oracle trate elas de forma diferente e talvez influencie em performance ou alguma coisa assim.
Será q tem fundamento isso?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)