[Oracle] problème de nvl
Résolu/Fermé
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
-
21 mai 2012 à 14:42
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 - 22 mai 2012 à 09:45
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 - 22 mai 2012 à 09:45
A voir également:
- Oracle nvl
- Violation de contrainte unique oracle - Forum Programmation
- Oracle liste des tables ✓ - Forum Programmation
- Double oracle - Forum Oracle
- Taille tablespace oracle - Forum Oracle
- Oracle virtualbox telecharger - Télécharger - Émulation & Virtualisation
2 réponses
jee pee
Messages postés
40641
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
9 janvier 2025
9 479
21 mai 2012 à 18:34
21 mai 2012 à 18:34
Salut,
Tu pourrais essayer :
select distinct id, nom from
(select id, nom from table1 where id=id_donne
union
select id, nom from table2 where id=id_donne
)
/
cdlt
Tu pourrais essayer :
select distinct id, nom from
(select id, nom from table1 where id=id_donne
union
select id, nom from table2 where id=id_donne
)
/
cdlt
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
22 mai 2012 à 09:45
22 mai 2012 à 09:45
Sinon ça marche nickel, jee pee. Merci beaucoup !
21 mai 2012 à 20:39
Je vais donc tester :
C'est une bonne idée ! Je reviens dire si ça a pu fonctionner dès que je peux.
M'enfin, je ne comprends pas bien alors la fonction NVL :$ et pourquoi elle retourne ces résultats...
Modifié par jee pee le 21/05/2012 à 23:37
NVL est utilisé pour remplacer la valeur d'un champ vide, mais sur un enregistrement existant. Tu sembles l'utiliser sur des champs d'un enregistrement qui n'existerait pas.
En plus sans lien entre les 2 tables ta requête génère un produit cartésien des enregistrements entre table 1 et table 2.
Il y a plusieurs autres façons de faire, pour par exemple supprimer le distinct
select id, nom from table1 where id=id_donne
union
select id, nom from table2 where id=id_donne
and id not in (select id from table1 where id=id_donne )
Modifié par AssassinTourist le 22/05/2012 à 09:19
Mais n'est-il pas mieux de mettre un distinct plutôt que de faire trois select ?
(dans mon cas présent, j'avais mis un distinct parce qu'avec le nvl, il me donnait trop de résultats même lorsque la requête était bonne)