Fórum Classificar pela diferença entre dois campos #221163

19/03/2004

0

Olá!!

Tentei de todas as maneiras classficar pela diferença entre dois campos,
Exemplo:

Select * from TABELA WHERE (Valor1 - VAlor2 <> 0);
Select * from TABELA WHERE (Valor1 - VAlor2 is not null);

e não me retorna certo.


É realmente isso que tenho que fazer, ou estou errado??


Desde já Obrigado!!

eJose.

xxxxxxzx

:D


Ejose

Ejose

Responder

Posts

19/03/2004

Afarias

o q exatamente vc quer fazer??

classificar=ordenar e pra isso se usa o ORDER BY. WHERE é usado para estabelecer condições!


T+


Responder

Gostei + 0

19/03/2004

Aroldo Zanela

Colega,

Também não entendi, mas só um exclarecimento para você:

Select * from TABELA WHERE (Valor1 - VAlor2) <> 0


Mudei o parentese de lugar por questões de precedência. Assim, se ambas as colunas forem diferentes de NULL, haverá um subtração do valor2 do valor1 e em seguida será comparado se é diferente de 0. Isto não funciona corretamente na existência de valores NULLs.


Responder

Gostei + 0

20/03/2004

Ejose

Olá!

Bom, na verdade o que eu quero mesmo é FILTRAR.

Então pelo que entendi os dois campos devem ser null ou
possuirem algum valor?

José.

:oops: :D


Responder

Gostei + 0

20/03/2004

Aroldo Zanela

Colega,

Não podem ser NULLs (da forma que entendi seu problema). Portanto, pode colocar uma restrição de entrada de dados para não permitir NULLs. Se a tabela ja estiver populada, pode fazer algo como:

update TABELA set valor1 = 0
where valor1 is null

update TABELA set valor2 = 0
where valor2 is null


A partir deste procedimento sua restrição irá funcionar.


Responder

Gostei + 0

22/03/2004

Ejose

Olá

Obrigado pela atenção!!!

Alterei todos os valores nulos e funcionou como queria.


José.


Responder

Gostei + 0

22/03/2004

Paulo_amorim

Olá

Para fins de esclarecimento, existe a função para se substituir valores nulos que poderiam ser usadas nesse caso:
NVL no oracle e IFNULL no MySQL (nao sei das outras)

Com isso nao eh necessario esse UPDATE que o Zanela disse


Até+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar