Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LODVini

Troca CASE por DECODE

Recommended Posts

boa tarde...

tenho um select utilizando o comando case... funciona sem problemas no plus... mas eu preciso deste select no forms, e o forms aceita apenas o decode...

gostaria de saber se teria como eu trocar o case que eu tenho por decode (como??).

 

Coluna do select q utiliza case:

case	when vtc.vlr_pago   is not null and		 vtc.data_pagto is not null	then '1'	when vtc.data_pagto is null and		 trunc(sysdate) <= vtc.data_vencimento	then '3'	else '2' end tipo_parcela

tentei trocar mas nao consegui fazer a verificacao de "<="...

se alguem souber e puder ajudar... grato

 

Vinicius

Compartilhar este post


Link para o post
Compartilhar em outros sites

O case é mais lento que o decode, podendo ser feito via decode vale mais a pena ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

no meu forms aqui nao funciona...pelo que conversei com algumas pessoas, me disseram que era por causa que eu nao tinha um patch atualizado do forms...enfim..."se nao souber fazer um cheque de R$60, faça dois de R$30"dividi meu select em 3 e fiz union.. ( cada partde do case um select )...Funcionou...mas vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas, como ficou a performance do seu SELECT? Ficou satisfatoria.

 

Igual ao Motta disse acima, utilizar o DECODE é melhor que CASE. Segue um exemplo:

 

SELECT empresa,   decode(idproduto, 10, 'IBM', 							 11, 'Microsoft', 							 12, 'Hewlett Packard', 			'Gateway') result  FROM tblProdutos;

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo, eu não afirmei , mas perguntei ....

 

Desconfio que o Decode seja mais rápido pela caracterisca da sintaxe, mas não tenho certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para melhorar as idéias segue uma literatura interessante:

 

Improving SQL efficiency using CASE

 

Respostas de experiências com DECODE

 

Opinião:

 

Aqui na empresa existe SELECTS muito pesado em nível de processamento e utilização de memória. Alguns funcionam muito bem com DECODE, passando para CASE houve perca de performance e alteração nos planos de execução.

 

Porém, com DECODE você não pode colocar condições de comparação como (AND,OR,XOR).

 

Fica a gosto do cliente.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tenho feito é o seguinte, sendo simples tipo :

 

DECODE(SEXO,'M','MASCULINO','FEMININO') vai o DECODE.

 

Só uso o case quando é mais complexo.

 

(CASE THEN SEXO='M' AND UF_NASF = 'RJ' THEN 'ESPERTO'

THEN SEXO='F' AND UF_NASF = 'RJ' THEN 'ESPERTA'

ELSE 'OTARIOS' END) :)

 

No legado , que está funcionando e usa decode , deixo queito ....

 

[]´S

Compartilhar este post


Link para o post
Compartilhar em outros sites

alphamek... a performance caiu quando troquei o case por 3 select's....quando sao coisas faceis faço com case ( exemplo sexo) ... com maior complexidade utilizo o case...mas a minha questao e duvida é: nao consegui trocar meu case por decode...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou no site da Oracle para ver pq o CASE não funciona no FORMS ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.