Bonsoir,

Je vais essayer de présenter mon problème par des exemples :

Nous sommes en novembre 2014, donc en écrivant la query suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT to_char(sysdate, 'MM')||','||to_char(sysdate, 'YY') test_id FROM DUAL
J'obtiens
Imaginons la query suivante à présente :
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
Elle me retourne évidemment
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' ? :
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
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 (test_id) THEN 'okok bon' 
       ELSE 'pas bon' END
FROM (SELECT to_char(sysdate, 'MM')||','||to_char(sysdate, 'YY') test_id FROM DUAL)
Je souhaiterai écrire une query comme cette dernière où le test_id est repris dans le IN (test_id).
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é