On Jan 9, 2008 5:22 AM, Édio Ilha <[EMAIL PROTECTED]> wrote:
> Achei bem interessante a tua colocaçao, pois sempre q alguem pergunta sobre
> consulta com NULL, rapidamente alguem responde, o null é um estado entao a
> razao por chamar IS NULL, Valeu mesmo!!
>  Muito boa colocaçao!!
>  Vlw
>  edioilha

Pelo menos no postgresql  "=Null" é diferente do "is Null". Mas só nas
comparações.
SELECT campos FROM tabela WHERE campo IS NULL; (retorna os campos com
valores nulo)
UPDATE tabela SET campo=NULL; (atribui um valor nulo ao campo)

Ja tive problemas pra gerar querys por causa disso, por exemplo:

if (alguma condição) then
  str_campo := 'valor qualquer'
else
  str_campo := 'NULL';
SQL := 'UPDATE tabela SET campo=' + QuotedStr(str_campo) + ' WHERE campo='''';';
SQL = 'SELECT campos FROM tabela WHERE campo=' + QuotedStr(str_campo);

A idéia é no UPDATE é atualizar os campos da tabela que tenha valores
de string vazia.
No SELECT ele retorna os campos que sejam iguai a str_campo. Porém se
ele for nulo não vai funcionar corretamente se o valor dele for
'NULL'.
Uma solução que eu creio não foi das melhores foi esta:

SQL = 'SELECT campos FROM tabela WHERE campo' + IfThen(str_campo =
'NULL', ' IS NULL', '=' + QuotedStr(str_campo));

Alguém conhece uma solução melhor?

Responder a