Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2007, 16h35   #1
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
Par défaut SQL - Utilisation de (+)=

Bonjour,

j'ai une question sans doute facile, mais impossible de trouver la signification sur google:
que signifie (+)= ?
j'ai une requete
Code :

SELECT *
FROM table1 t1, table2 t2
WHERE t1.COINN(+)=t2.COINT AND t1.NUCPT(+)=t2.NUCPT


Merci d'avance
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 16h37   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
page 23 -> ftp://ftp-developpez.com/oracle/guide/SQL.pdf
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 16h48   #3
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
merci mais ils disent (p23) que (+) est utilisé afin de ne pas supprimer de clients.
Or dans ma requête les clients sont supprimé:

Code :
1
2
3
SELECT t1.col, t2.nom
FROM table1 t1, table2 t2
WHERE t1.COINT(+)=t2.COINT AND t1.NUCPT(+)=t2.NUCPT
Est-ce parce que moi j'utilise 2 fois (+) ?
Pour info j'ai des clients de ma table t1 qui ont une jointure sur t2 via:
COINT & NUCPT
d'autre que sur COINT
et d'autre aucune jointure sur t2 (mais je veut les garder)

Merci
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 17h18   #4
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
non pour etre plus précis je fais:

Code :
1
2
3
SELECT *
FROM table1 t1, table2 t2
WHERE t1.COINN=t2.COINT(+) AND t1.NUCPT=t2.NUCPT(+)
mais dans le cas ou j'ai une joiture t1.COINN=t2.COINT et t2.NUCPT=null
alors ils considere qu'il n'y a pas de jointure.
Alors que moi je voudrais qu'il fasse une jointure si:
t1.COINN=t2.COINT AND t1.NUCPT=t2.NUCPT ou sinon si
t1.COINN=t2.COINT AND t2.NUCPT=null
sinon pas de jointure mais qu'il garde les element t1.
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 18h09   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
NVL est ton ami
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 09h51   #6
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
je ne voit pas l'utilité de NVL ici
c'est + un pb de jointure dans mon cas non?
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 10h11   #7
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
t2.NUCPT=null ne retournera jamais de résultat, il faudrait écrire :
Code :
t2.NUCPT=NVL(NULL,t2.NUCPT)
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 10h16   #8
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
ben ca revient au meme que
et en utilisant les jointure externe (+), je n'arrive pas à lié l'ensemble pour que cela fonctionne

sinon je pensait au ou exclusif car je veux:
t1.COINN=t2.COINT AND t1.NUCPT=t2.NUCPT ou sinon si
t1.COINN=t2.COINT AND t2.NUCPT=null
sinon pas de jointure mais qu'il garde les element t1.

sachant que on peut avoir
t1.COINN=t2.COINT AND t1.NUCPT=t2.NUCPT et aussi
t1.COINN=t2.COINT AND t2.NUCPT=null

mais que je veux garder que la 1ere expression:
t1.COINN=t2.COINT AND t1.NUCPT=t2.NUCPT

c'est bien le XOR non? car ca ne marche pas?
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h01   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par zizou771 Voir le message
ben ca revient au meme que
Non !

essaye ces 2 requêtes :

Code :
SELECT sysdate FROM dual WHERE NULL = NULL
et

Code :
SELECT sysdate FROM dual WHERE NULL IS NULL
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h51   #10
Membre à l'essai
 
Inscription : avril 2005
Messages : 200
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 200
Points : 24
Points : 24
bien vu (mais ca résous pas mon pb, j'en conclu que les jointure externe avec oracle a ces limites )
zizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 12h04   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ça n'a pas de limite, il faut juste faire attention aux valeurs NULL
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h13.


 
 
 
 
Partenaires

Hébergement Web