Problemas com uma query

Firebird

15/06/2004

Olá, tenho a seguinte Query:
select * from clientes
where
(nome = ´fellipe´) AND (DELETED <> ´*´)

porem ele nao me retorna nada, sendo que existe registro na tabela, nao marcados com *.. se eu tirar o
AND(DELETED <> ´*´)

ele funciona perfeitamente...
o que ha de errado na minha query?

Desde ja agradeco...
[]s


Titanius

Titanius

Curtidas 0

Respostas

Afarias

Afarias

15/06/2004

o seu ´problema´ é q os campos q não estào com ´*´ , estão NULOS -- e nulo não é valor!! sendo assim::

campo <> ´*´ e campo = ´*´ será sempre FALSO -- por que nulo quer dizer DESCONHECIDO -- intão, como é desconhecido não dá pra dizer se é IGUAL ou DIFERENTE :)

mude sua consulta para::

select * from clientes
where (nome = ´fellipe´) AND (DELETED IS NULL)



T+


GOSTEI 0
Titanius

Titanius

15/06/2004

po cara, é isso mesmo... mas como eu sou iniciante, como faço uma query que me retorne o valor do tipo:
(Nome = ´fellipe´) AND ( (DELETED <> ´*´) OR (DELETED <> NULL) )


seria assim?

Abracos


GOSTEI 0
Afarias

Afarias

15/06/2004

desculpe, não entendi sua questão. pode refazê-la??

aproveitando, ´DELETED <> NULL´ não está correto... NULL não é valor! NULL possui apenas 2 operadores:: IS e IS NOT ... sendo assim ::

DELETED IS NULL

ou

DELETED IS NOT NULL


T+


GOSTEI 0
Titanius

Titanius

15/06/2004

Bem, eu queria que me retornasse o registro com o campo NOME igual a ´fellipe´ e que nao seja NULL e nao esteja marcado com ´*´ o campo DELETED...

Como faco isso?


GOSTEI 0
Afarias

Afarias

15/06/2004

(Nome = ´fellipe´) AND (DELETED IS NOT NULL) AND (DELETED <> ´*´)


GOSTEI 0
POSTAR