Interrogation de la gestion des NULL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Interrogation de la gestion des NULL

Re: Interrogation de la gestion des NULL

par antoine94200 » 30 sept. 2013, 09:32

tu veux faire ça :
select dp, ca, nbr, nbr2
from teste, teste2
where dp=dp2(+)
and ca is null
and ca2 is null;

Tu es sous oracle ?
si tu veux récupérer (73,NULL,1) avec ce que tu as donné:
select dp, ca, nbr, nbr2 from teste,test2 where teste.dp=teste2.dp2 and teste.ca is null.
tu auras : 73,NULL,1,1

Re: Interrogation de la gestion des NULL

par moogli » 09 août 2013, 18:21

Salut,

Je t'invite a utiliser une jointure normalisée plus compréhensible que les notations oracle foireuse ;) http://sqlpro.developpez.com/cours/sqlaz/jointures/ c'est plus clair à lire et surtout utilisable partout.

A priori la jointure c'est d2 qui este référencé dans la table 1.
Ensuite tu n'a pas de ca2 null donc sauf si tu fait un produit cartésien (que tu compte faire avec ta jointure externe) tu ne peux avoir de résultat.
Vire le prédicat et regarde ce que tu as colle résultat.

@+

Interrogation de la gestion des NULL

par karatetiger » 08 août 2013, 17:55

Bonjour à tous.

Petite question sur une portion de code qui ne renvoie pas ce que mon cerveau pense :).

La voila

drop table teste;
create table teste(dp number(2), ca number(2), nbr number(2));

insert into teste values(73,4,1);
insert into teste values(73,23,1);
insert into teste values(73,97,2);
insert into teste values(73,NULL,1);

select count(*) from teste;
select count(*) from teste2;

drop table teste2;
create table teste2(dp2 number(2), ca2 number(2), nbr2 number(2));
insert into teste2 values(73,97,1);

select dp, ca, nbr, nbr2
from teste, teste2
where dp=dp2(+)
and ca is null
and ca2 is null;

Dans ma tête, utilisant une jointure externe je m'attends à récuperer une ligne 73 NULL 1 NULL
mais la requête ne renvoie rien. Je pense que c'est un souci de gestion de null mélangé à la jointure externe mais si quelqu'un pouvait m'éclaircir ce serait super.

Merci

kara