Select com if em Oracle

3 respostas
K

Olá. estou procurando a sintaxe do oracle para o comando IF ou IFNull.

Exemplo

no MySQL esse comando funciona

SELECT IF(1>2,2,3);

já no Oracle ele não esta funcionando

Alguem sabe como me ajduar?

3 Respostas

J

Tente assim:

SELECT CASE WHEN 1 > 2 THEN 2 ELSE 3 END FROM DUAL;

Tem o decode tambem, mas só compara igualdade:

SELECT DECODE (campo, 2, 'o campo é igual a 2', 'o campo é diferente de 2') FROM tabela;

E

Vc pode utilizar as funções decode e sign:

SELECT DECODE(SIGN(campo1 - campo2), 1, 2, 3) FROM tabela

Função SIGN(<exprN>) : Se exprN for negativo retorna -1, se for positivo retorna 1, se for 0 retorna 0.

H

Em relação ao IfNull é facil no ORACLE o comando é nvl()

select zzz, xxx where xxx =NVL(aaa, 1)

– Ou seja, se aaa for nulo retorna 1;

O decode voce usaria da seguinte forma:
select decode(dia_da_semanda, 1, "Domingo") from minha tabela;

Ok?
Criado 1 de fevereiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 3
Participantes 4