Rúben Lício escreveu: > Boa tarde, > > Tenho alguns SELECTs em uma base que devem retornar valores apenas se > um campo timestamp não tiver dando algum, e também as vezes um campo > char. > Eu tento > SELECT * FROM tb_teste WHERE campo_ts_teste = NULL; > E isso não me retorna resultado (sim há resultados para ele devolver). > Esse registro foi inserido usando o valor NULL para este campo. > O mesmo acontece com um campo char, que contém ou NULL ou '*', já tentei > SELECT * FROM tb_teste WHERE campo_char_teste = NULL > SELECT * FROM tb_teste WHERE campo_char_teste != '*' > Ambos não retornam nada nunca. > > Como devo fazer para comparar campos com NULL no postgres?? >
O operador = não se aplica a NULL. Utilize campo_char_teste IS NULL (ou IS NOT NULL). Outra alternativa, caso seja muito trabalhoso modificar todos os SELECT, é alterar no postgresql.conf a opção transform_null_equals, veja: http://www.postgresql.org/docs/current/interactive/runtime-config-compatible.html#RUNTIME-CONFIG-COMPATIBLE-VERSION Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
