Bonjour,

Je souhaiterai l'équivalent d'une fonction Transac/Sql de la fonction ISNULL (qui ne prend que 2 paramètres) mais avec 3 paramètres.
En gros, je voudrais ISNULL(XXX,YYY,ZZZ) qui reviendrait à dire :
Si mon champ XXX est null, alors prendre YYY sinon prendre ZZZ.
Le CASE WHEN ne fonctionne pas car mon ISNULL n'est pas dans un SELECT mais dans un WHERE.

Ci-dessous ma requête.

Merci d'avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT F.FOUR_SEQ_IDENTIFIANT,
F.FOUR_VA_CODE_COURT,   
E.ETAB_VA_CODE_POSTAL, 
E.ETAB_VA_VILLE, 
E.ETAB_CE_PAYS, 
C.CONT_VA_NOM, 
C.CONT_VA_PRENOM, 
F.FOUR_CE_ACTIVITE,    
E.ETAB_VA_TELEPHONE, 
E.ETAB_VA_FAX, 
E.ETAB_VA_EMAIL, 
F.FOUR_TOP_ACTIF, 
F.FOUR_VA_COMMENTAIRE,    
F.FOUR_VA_COMMENTAIRE_COMMERCIAL, 
F.FOUR_VA_COMMENTAIRE_LOGISTIQUE 

FROM T_FOURNISSEUR F, T_FOURNISSEUR F2, T_FOURNISSEUR F3, T_FOURNISSEUR F4,
T_VARIETE_FOURNISSEUR VF, T_ETABLISSEMENT E, 
T_CONTACT C, T_ACTIVITE A 

WHERE 
F.FOUR_SEQ_IDENTIFIANT = E.ETAB_CE_FOURNISSEUR AND
E.ETAB_SEQ_IDENTIFIANT = C.CONT_CE_ETABLISSEMENT AND
F.FOUR_SEQ_IDENTIFIANT = VF.VARF_CE_FOURNISSEUR AND
F.FOUR_CE_ACTIVITE = A.ACT_ID_IDENTIFIANT AND
F.FOUR_CE_GROUPE_APPARTENANCE = F2.FOUR_SEQ_IDENTIFIANT AND
ISNULL(F.FOUR_CE_REPRESENTE_PAR_FOURNISSEUR,-1) = ISNULL(F.FOUR_CE_REPRESENTE_PAR_FOURNISSEUR,-1,F3.FOUR_SEQ_IDENTIFIANT) AND
ISNULL(F4.FOUR_CE_REPRESENTE_PAR_FOURNISSEUR,F.FOUR_SEQ_IDENTIFIANT) = ISNULL(F4.FOUR_CE_REPRESENTE_PAR_FOURNISSEUR,-1) AND 
F.FOUR_VA_CODE_COURT LIKE '%dqu%'