Bonsoir,
Je vais essayer de présenter mon problème par des exemples :
Nous sommes en novembre 2014, donc en écrivant la query suivante
J'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT to_char(sysdate, 'MM')||','||to_char(sysdate, 'YY') test_id FROM DUAL
Code : Sélectionner tout - Visualiser dans une fenêtre à part 11,14
Imaginons la query suivante à présente :
Elle me retourne évidemment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT CASE WHEN to_char(11) IN (11,14) THEN 'okok bon' ELSE 'pas bon' END FROM DUAL
Code : Sélectionner tout - Visualiser dans une fenêtre à part okok bon
Là, où je veux en venir, c'est pourquoi si je remplace le 11,14 par la première query que j'ai écrite dans ce post, ça ne me retourne 'pas bon' ? :
pareil si je le fais comme çà (ce qui est en fait mon objectif final).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT CASE WHEN to_char(11) IN (SELECT to_char(sysdate, 'MM')||','||to_char(sysdate, 'YY') test_id FROM DUAL) THEN 'okok bon' ELSE 'pas bon' END FROM DUAL
Je souhaiterai écrire une query comme cette dernière où le test_id est repris dans le IN (test_id).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT CASE WHEN to_char(11) IN (test_id) THEN 'okok bon' ELSE 'pas bon' END FROM (SELECT to_char(sysdate, 'MM')||','||to_char(sysdate, 'YY') test_id FROM DUAL)
J'ai évidemment simplifié mon problème pour vous le présenter ici, mais je ne comprends pas pourquoi avec ma query qui me retourne 11,14, ça ne me permet de tourner cette grande query...
Quelqu'un sait m'éclairer et pourquoi pas aussi me donner la solution pour que ça me retourne le résultat correct ? Merci beaucoup
J'ai déjà essayé avec des to_char, to_number, des apostophes à plusieurs edroits, etc. mais rien n'y fait, je ne trouve pas le moyen d'avoir le 'okok bon' comme résultat.
Merci pour votre aide... J'suis bloqué![]()
Partager