PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 14/01/2013 10:13:58

youssef
Membre

comparaison de deux valeurs qui peuvent être null

Bonjour 

je crois que le titre est assez explicite, 

on sait bien que la comparaison de n'importe quelle valeur avec une valeur null retourne false,
même pour la comparaison de deux valeurs null.

Mais pour un besoin  de rapprochement de deux tables sur plusieurs champs, dont des champs qui peuvent avoir une valeur null
qu'elle est la meilleur façon de le faire ?

exemple  :

select t1.* 
from t1, t2 
where t1.c1 = t2.c1
and t1.c2 = t2.c2
and t1.c3 = t2.c3
and t1.c4 = t2.c4  

comment éviter que si t1.c1 is nulle et t2.c1 is null , le résultat de la clause where soit False.

Merci d'avance

Dernière modification par youssef (14/01/2013 10:14:22)

Hors ligne

#2 14/01/2013 10:20:56

rjuju
Administrateur

Re : comparaison de deux valeurs qui peuvent être null

Bonjour,

la comparaison de NULL avec une autre valeur renverra toujours NULL. Vous devriez utiliser des LEFT JOIN pour éviter ce problème, où alors la fonction COALESCE mais les performances seront moindres.

Hors ligne

#3 14/01/2013 11:10:46

youssef
Membre

Re : comparaison de deux valeurs qui peuvent être null

dans mon cas, c'est la fonction COALESCE select ( une fonction que je connaissais pas )

Merci rjuju

Hors ligne

Pied de page des forums