Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je recherche à faire

Je souhaite trier un résultat avec plusieurs critéres et des conditions

J'ai une table sql comme ceci :

     uc1             nbr_ddc_uniques_tlrv          last_tr69
1115800000268                84                    2019-04-12
2115800000269                243                   2019-04-31
3115800000270                0                     2019-04-19
4115800000271                63                    2019-04-05

Et je souhaite la faire resortir comme ceci :

     uc1             nbr_ddc_uniques_tlrv          last_tr69
2115800000269                243                   2019-04-31
4115800000271                63                    2019-04-05
1115800000268                84                    2019-04-12
3115800000270                0                     2019-04-19

Pour ce faire, j'aimerais trier en faisant cette condition :

Tant que nbr_ddc_uniques_tlrv >= 100, Trier nbr_ddc_uniques_tlrv du plus grand au plus petit, puis dés que nbr_ddc_uniques_tlrv < 100, trier par last_tr69 du plus petit au plus grand.

Ce qui représente, si je la faisait en php :

if(`nbr_ddc_uniques_tlrv` >= 100) { `nbr_ddc_uniques_tlrv` DESC } else { ``last_tr69`` ASC }

J'ai cherché et trouvé des possiblités avec CASE ou IF. Mais je n'arrive pas à les faire fonctionné.

Avez vous des idées ?

Merci

1 réponse


Tydoo
Auteur
Réponse acceptée

Du coup j'ai trouvé avec une collégue :

ORDER BY case when nbr_ddc_uniques_tlrv >=100 then nbr_ddc_uniques_tlrv end desc, case when nbr_ddc_uniques_tlrv < 100 then last_tr69 end asc

;)