2009/7/30 Edwin Quijada <[email protected]>:
De ser así, ¿has leído respecto de las implicancias que tienen los
valores NULL en cláusulas NOT IN?
El no se pero a mi me gustaria saber que implicaciones tienen los NULL en clausulas NOT IN , donde puedo ver eso?
postgres=# select current_date where 1 not in (select 2);
date
------------
2009-08-01
(1 row)

postgres=# select current_date where 1 not in (select 2 union select null);
date
------
(0 rows)


La razon siempre se la atribuye al estandar aunque no se en que parte
del estandar esta eso...
en todo caso, este ejemplo nos permite hacernos una idea:

-- en este caso el resultado es true, 1 *definitivamente*
-- esta en el conjunto de resultados de la subconsulta
postgres=# select 1 in (select 1 union select 2 union select null);
?column?
----------
t
(1 row)

-- en este caso el 1 no forma parte del conjunto de resultados...
-- pero como NULL es deconocido o indeterminado no puedo decir a
ciencia cierta que *no es* 1
-- imagino que es bajo esa premisa que el resultado aqui es NULL en
lugar de false
postgres=# select 1 in (select 2 union select null);
?column?
----------

(1 row)

-- siendo que en el ejemplo anterior el resultado es NULL, y la
negacion de NULL es NULL
-- al negar la expresion anterior obtengo otra vez NULL
-- segun el estandar: "The expression RVC NOT IN IPV is equivalent to
NOT ( RVC IN IPV )

postgres=# select not (1 in (select 2 union select null));
?column?
----------

(1 row)


--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-es-ayuda @
categoriespostgresql
postedAug 1, '09 at 6:43p
activeAug 1, '09 at 6:43p
posts1
users1
websitepostgresql.org.es
irc#postgresql

1 user in discussion

Jaime Casanova: 1 post

People

Translate

site design / logo © 2023 Grokbase