From: | "Ariel" <buenasalud(at)ubbi(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Problema con campos nulos |
Date: | 2006-04-25 21:16:52 |
Message-ID: | 000f01c668ad$93541570$fa5367c0@GISARIEL |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Estimados
Se presento un problema con el siguiente query en donde el campo
no_facturable puede tomar varios valores incluyendo nulo, como se puede
observar en el siguiente Query
tempo=# select no_facturable from padron group by 1;
no_facturable
---------------
NF
BC
(3 rows)
Pero cuando hago las siguientes consultas me arroja valores no esperados
cuando incluyo 3 campos concectados por un and.
Les muestro la situacion
tempo=# select count(*) from padron_new where situacion <> 'BA' and
situacion <> 'BC';
count
--------
107350
(1 row)
tempo=# select count(*) from padron_new where situacion <> 'BA' and
situacion <> 'BC' and no_facturable <> 'BC';
count
-------
714
(1 row)
tempo=# select count(*) from padron_new where (situacion <> 'BA' and
situacion <> 'BC') and (no_facturable <> 'BC' or no_facturable = '');
count
-------
714
(1 row)
tempo=# select count(*) from padron_new where (situacion <> 'BA' and
situacion <> 'BC') and (no_facturable = 'NF' or no_facturable = '');
count
-------
714
(1 row)
tempo=# select count(*) from padron_new where (situacion <> 'BA' and
situacion <> 'BC') and (no_facturable = 'NF' or no_facturable is null);
count
--------
106939
(1 row)
tempo=# select count(*) from padron_new where (situacion <> 'BA' and
situacion <> 'BC') and (no_facturable <> 'BC' or no_facturable is null);
count
--------
106939
(1 row)
tempo=# select count(*) from padron_new where (situacion <> 'BA' and
situacion <> 'BC') and (no_facturable <> 'BC');
count
-------
714
(1 row)
tempo=# explain analyze select count(*) from padron_new where (situacion <>
'BA' and situacion <> 'BC') and (no_facturable <> 'BC');
QUERY PLAN
----------------------------------------------------------------------------
--------------------------------------------
Aggregate (cost=20120.29..20120.29 rows=1 width=0) (actual
time=468.000..468.000 rows=1 loops=1)
-> Seq Scan on padron_new1 (cost=0.00..19853.72 rows=106624 width=0)
(actual time=0.000..468.000 rows=714 loops=1)
Filter: ((situacion <> 'BA'::bpchar) AND (situacion <>
'BC'::bpchar) AND ((val_atr_22)::text <> 'BC'::text))
Total runtime: 468.000 ms
(4 rows)
El valor correcto es de 106939, la pregunta es ¿debo incluir explícitamente
que el campo no_facturable sea nulo? Esto esta bien?
Si alguien me puede aclarar un poco lo que ocurre se lo agradezco, porque me
dejo un poco confundido.
Muchas gracias
Ariel Tavella
Area GIS
From | Date | Subject | |
---|---|---|---|
Next Message | Fernanda Fueltala | 2006-04-25 21:39:23 | RV:Server doesn't listen |
Previous Message | Julio Rivero | 2006-04-25 21:13:18 | Re: Server doesn't listen |