Bonjour,

Est-ce que vous pouvez me donner la raison pour laquelle l'usage de decode qui retourne une date va classer les résultats en varchar au lieu de les classer par date. Je n'observe pas ce comportement avec l'usage d'un case when.

Voici l'exemple d'une requête que vous pouvez tester :

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
--- select où l'order by classe en date
select "Date"
 
--- select où l'order by classe en varchar
select decode (1 , 0 ,null, "Date") as "Date"
 
--- select où l'order by classe en date
select case when 1 = 0 then null else "Date" end as "Date"
 
from
    (select to_date ('10/05/2024', 'dd/mm/yyyy') as "Date"
    from dual
    union all
    select to_date ('05/06/2024', 'dd/mm/yyyy') as "Date"
    from dual)
order by "Date"
Merci d'avance pour vos réponses.