Classificar pela diferença entre dois campos

Delphi

19/03/2004

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

Curtidas 0

Respostas

Afarias

Afarias

19/03/2004

o q exatamente vc quer fazer??

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


T+


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

19/03/2004

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.


GOSTEI 0
Ejose

Ejose

19/03/2004

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


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

19/03/2004

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.


GOSTEI 0
Ejose

Ejose

19/03/2004

Olá

Obrigado pela atenção!!!

Alterei todos os valores nulos e funcionou como queria.


José.


GOSTEI 0
Paulo_amorim

Paulo_amorim

19/03/2004

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é+


GOSTEI 0
POSTAR