Fórum Classificar pela diferença entre dois campos #221163
19/03/2004
0
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
Curtir tópico
+ 0Posts
19/03/2004
Afarias
classificar=ordenar e pra isso se usa o ORDER BY. WHERE é usado para estabelecer condições!
T+
Gostei + 0
19/03/2004
Aroldo Zanela
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
20/03/2004
Ejose
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
20/03/2004
Aroldo Zanela
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
22/03/2004
Ejose
Obrigado pela atenção!!!
Alterei todos os valores nulos e funcionou como queria.
José.
Gostei + 0
22/03/2004
Paulo_amorim
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
Clique aqui para fazer login e interagir na Comunidade :)