A função DECODE não pode testar operadores senão pela igualdade ou não dos
arguementos apresentados. Sendo assim, não há uma forma nativa de fazer um
IIF no Oracle.

Voce tem duas opções:

a) Construir uma function IIF em pl/sql e executá-la e testar o retorno
atraves do JDBC como está abaixo:

FUNCTION IIF(bCondicao IN BOOLEAN, cTrue IN VARCHAR2, cFalse IN VARCHAR2)
RETURN VARCHAR2 IS
      BEGIN
         IF bCondicao THEN
             RETURN cTrue ;
         ELSE
             RETURN cFalse ;
        END IF ;
 END IIF ;


b) usar a função SIGN para "emular" os testes condicionais de > e <.
Funciona da seguinte forma: SIGN retorna 1 se o argumento passado é maior
que zero, 0 se é igual a 0 e -1 se for menor que zero. No exemplo, vou
assumir que tu quer testar se o valor X é maior que 10:

select decode (sign(x-10),1,'Maior',-1,'Menor',0,'Igual') from dual;

Vamos supor que X = 5. SIGN(5-10) vai retornar -1, logo, usamos o DECODE
para imprimir um 'Menor', e vice-versa.

Beleza?

Alisson Aguiar
Uni5.com


----- Original Message -----
From: Richard Wilson Rocha Antelo <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, August 22, 2001 4:53 PM
Subject: [java-list] Alguem sabe usar isso ( (X > Y) ? X : Y ) em um SQL
ORACLE ?


> Pessoal
>
>    Tenho que usar um teste no meu SQL para o Oracle.
>    No oracle nao existe (que eu saiba) uma funcao
> tipo "IIF" do FoxPro.
>    Existe a funcao Decode, mas nao serve por que tenho
> que testar (>,<,<=,>=...) e o Decode so testa igualdade.
>    Alguem ja criou alguma funcao "Java" no Oracle que
> simule um Iff([condicao],[Retorno true],[Retorno false]) ?
>    Obs: Os retornos podem ser datas, strings, numeros.
>    Existe outra alternativa ?
>
> Obrigado.
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a