Em 12/12/10, Beto Lima<[email protected]> escreveu:
> Pessoal estou com problema que é o seguinte:
> tenho uma tabela assim:
>
> CREATE TABLE tempo_duracao_prova
> (
>   id_tempo_duracao_prova serial NOT NULL,
>   id_agenda integer NOT NULL,
>   id_pergunta integer NOT NULL,
>   tipo_pergunta tipo_pergunta NOT NULL,
>   id_func_inc integer,
>   data_inicio_questao timestamp without time zone NOT NULL DEFAULT now(),
>   data_fim_questao timestamp without time zone,
>   CONSTRAINT tempo_duracao_prova_pkey PRIMARY KEY (id_tempo_duracao_prova)
> )
>
> quando inseridos os dados então o campo data_fim_questao fica vazio porque
> ele vai ser atualizado em outro momento.
> Só que mesmo tendo registros na tabela não consigo buscar resultados com
> este select:
>
> select * from tempo_duracao_prova where data_fim_questao = null
>
> não me retorna nada, mas o campo está vazio e tenho certeza de que está.
> ja tentei fazer cast e nada.
>
> select * from tempo_duracao_prova where data_fim_questao::date = null
> select * from tempo_duracao_prova where data_fim_questao::text = ''
>


Do manual:
"Do not write expression = NULL because NULL is not "equal to" NULL."
http://www.postgresql.org/docs/current/interactive/functions-comparison.html

O correto é usar:
... where data_fim_questao IS NULL
ou
... where data_fim_questao ISNULL

Outra opção é alterar o parâmetro de configuração
transform_null_equals no posrgresql.conf:
http://www.postgresql.org/docs/current/interactive/runtime-config-compatible.html#GUC-TRANSFORM-NULL-EQUALS

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a