If no Oracle

4 respostas
B

Ae, eu tava fazendo uma parada para interpretar umas expressões matematicas que serão usadas em querys, mas deparei com um problema, tem algo que faça o nosso famoso ‘if’ de java no Oracle, tipo, decode só compara, eu queria uma função que pudesse usar os outras operadores booleanos, tipo o >=, || , && entre os outros…

Alguém sabe?

4 Respostas

J

use o case when, de uma olhada na documentação.

[]'s

B

“jgbt”:
use o case when, de uma olhada na documentação.

[]'s


É, este eu ja olhei, as este corresponde ao switch case, ele só compara uum casa, apos o outro… e tb não suporta if’s aninhados…

a parada é f***, mas valeu, vou reler a documentação…

Mas se alguém tiver mais uma idéia…

D

Bruno… concorda comigo que o resultado da subtração de dois valores x e y é:

ZERO quando X = Y
>ZERO quando X > Y ex.: 5 - 3 = 2
< ZERO quando X < Y ex.: 3 - 5 = -2

OK ??

Existe uma função no Oracle chamada SIGN que tem os seguintes retornos:

0 quando o parametro passado for ZERO
1 quando o parametro for maior que ZERO
-1 quando o parametro passado for menor que ZERO

Entao se queres colocar numa expressao SQL uma comparacao que verifique se é maior ou menor use o seguinte exemplo:

SELECT DECODE&#40;SIGN&#40;X-Y&#41;, 0, 'IGUAIS', 1, 'X MAIOR', -1, 'Y MAIOR'&#41;
FROM DUAL;

e pode aninhar varias vezes para fazer expressoes mais complexas…

Nao é mto trivial mas funciona.

[]s

Douglas Falcão

B

“dfalcao”:
Bruno… concorda comigo que o resultado da subtração de dois valores x e y é:

ZERO quando X = Y
>ZERO quando X > Y ex.: 5 - 3 = 2
< ZERO quando X < Y ex.: 3 - 5 = -2

OK ??

Existe uma função no Oracle chamada SIGN que tem os seguintes retornos:

0 quando o parametro passado for ZERO
1 quando o parametro for maior que ZERO
-1 quando o parametro passado for menor que ZERO

Entao se queres colocar numa expressao SQL uma comparacao que verifique se é maior ou menor use o seguinte exemplo:

SELECT DECODE&#40;SIGN&#40;X-Y&#41;, 0, 'IGUAIS', 1, 'X MAIOR', -1, 'Y MAIOR'&#41;
FROM DUAL;

e pode aninhar varias vezes para fazer expressoes mais complexas…

Nao é mto trivial mas funciona.

[]s

Douglas Falcão

Essa foi show de bola, já resolveu uma parte do problema, a dos numeros, mas darei uma boa para ver se isto serve para strings tb…

Valeu Douglas

Criado 2 de fevereiro de 2005
Ultima resposta 3 de fev. de 2005
Respostas 4
Participantes 3