Bonjour à tous,

Après avoir parcouru les documentations et le forum, je suis tombée sur plusieurs éventuelles solutions à mon problème mais je n'arrive pas au bon résultat.

En gros, j’ai besoin de faire un WHERE 'que' s’il y a une valeur dedans.. Or, je pense que ce n’est pas possible

Ma requête de base:

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
 
SELECT DISTINCT goo.gco_good_id,
--si c’est en français on affiche:
             'Type : '
          || NVL (dic66.dic_description, '')
          || CHR (13)
          || 'Ø Métrique : '
          || TO_CHAR (NVL (att.gat_float_18, 0), '9990.99')
          || ' mm / Pas : '
          || TO_CHAR (NVL (att.gat_float_64, 0), '9990.99'),
--si c’est en anglais on affiche:
             'Type : '
          || NVL (dico.dit_descr, '')          -- affiche la traduction en anglais
          || CHR (13)
          || 'Metric Ø : '
          || TO_CHAR (NVL (att.gat_float_18, 0), '9990.99')
          || ' mm / Fitch : '
          || TO_CHAR (NVL (att.gat_float_64, 0), '9990.99')
     FROM gco_good goo
     left join (gco_good_attribute att
     left join (dic_gco_attribute_free_66 dic66 left join  dico_description dico on  dic66.dic_gco_attribute_free_66_id = dico.dit_code)
     on att.dic_gco_attribute_free_66_id = dic66.dic_gco_attribute_free_66_id )
     on goo.gco_good_id = att.gco_good_id
     where
     goo.goo_major_reference LIKE 'ECR%'
     and dico.pc_lang_id = 3
    AND dico.dit_table = 'DIC_GCO_ATTRIBUTE_FREE_66'
mon problème est que ce select ne m'affiche que les articles qui ont un Type. ceux qui ne sont pas reinseigné ne s'affichent pas..
et ceci à cause de mon where.

J'ai essayé avec les variantes "case when"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
where
 dico.dit_table = case when dico.dit_table ='DIC_GCO_ATTRIBUTE_FREE_66'   then 'DIC_GCO_ATTRIBUTE_FREE_66'  else null  end
...
J'ai aussi essayé de creuser du coté du select mais évidement ça joue pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
select
  'Type : '
          || NVL ( (case when dico.pc_lang_id = 3 then dico.dit_descr else 'false'  end ) , '')
from
...
Je travaille sur une BD Oracle et j'utilise le TOAD si jamais.

Merci d'avance pour votre aide et pour votre temps.

Cristina!