Fwd: Comparar valores Nulos

From: "Silvio Quadri" <silvioq(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Fwd: Comparar valores Nulos
Date: 2008-01-18 18:25:41
Message-ID: 61dc71dc0801181025p66c6ad1y8e535b391eda831b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 18/01/08, Consuelo Marmolejo <consuelo_marmolejo(at)hotmail(dot)com>
escribió:
>
>
> Que tal.
> Dentro de postgres no puedo comparar los valores nulos dentro de mis
> tablas; me explico con este ejemplo:
>
> Digamos que tenemos estas tablas:
>
> -- Tabla1 --
> id_tabla1 | nombre | profesion | color
> -----------+---------+---------------+---------
> 1 | Miguel | | Azul
> 2 | Alvaro | Análista |
> 3 | Jorge | Administrador | Rojo
> 4 | Roberto | | Violeta
> 5 | Miriam | Secretaria |
>
> -- Tabla2 --
> id_tabla2 | nombre | profesion | color
> -----------+---------+---------------+---------
> 5 | Miguel | | Azul
> 4 | Alvaro | Análista |
> 2 | Jorge | Administrador | Rojo
> 1 | Roberto | | Violeta
> 3 | Miriam | Secretaria |
>
> (Los espacios en blanco son valores NULL dentro de la tabla).
> Ahora si pueden observar lo único que cambia son los id's dentro de ambas
> tablas; al hacer la consulta:
>
> db_local2=# SELECT id_tabla1, id_tabla2, nombre, profesion, color FROM
> tabla1 INNER JOIN tabla2 USING(nombre, profesion, color);
>
> id_tabla1 | id_tabla2 | nombre | profesion | color
> -----------+-----------+--------+--------------------+-------
> 3 | 2 | Jorge | Administrador | Rojo
>
>
> El único resultado que trae es este.
> Si bien puedo hacer un "CASE" para columna que tentativamente tenga un
> valor nulo; no hay una forma más práctica?
> Alguna forma de hacer que postgres me tome en consideración los valores
> Nulos, para obtener este resultado:
>
> id_tabla1 | id_tabla2 | nombre | profesion | color
> -----------+-----------+----------+--------------------+---------
> 1 | 5 | Miguel | |
> Azul
> 2 | 4 | Alvaro | Análista |
> 3 | 2 | Jorge | Administrador | Rojo
> 4 | 1 | Roberto | |
> Violeta
> 5 | 3 | Miriam | Secretaria |
>
>
>
> _________________________________________________________________
> ¡Súper premios en nanometrajes subiendo tu video!
> http://cine.prodigymsn.com/nanometraje--
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá
> leerlo
>

Lamentablemente según las especificaciones del SQL, null = null te va a dar
siempre falso. Tenés que usar null is null.

Hacé esta prueba ...

# select null = null;
?column?
----------

(1 row)

# select null is null;
?column?
----------
t
(1 row)

Silvio

--
Silvio Quadri

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Silvio Quadri 2008-01-18 18:58:02 Re: Comparar valores Nulos
Previous Message Agustin Ignacio Genoves 2008-01-18 18:21:48 Re: Comparar valores Nulos