bonjour,

j'ai un petit souci concernant le tri.
en fait, je tri sur une colonne d'integer (positifs, négatifs ou nuls).

quand je fais le tri normal (order by MaColonne) le tri marche parfaitement.

par contre, quand j'ecris ca, cela ne marche plus (enfin ca marche sauf que j'ai les entiers négatifs toujours en extrémité et apparamment ils ne sont pas inclus dans le tri :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT t1.*
FROM (SELECT ID, NUMERO, AVOIR FROM MyTable
ORDER BY DECODE(:champTri, 'ID', ID, 'NUMERO', NUMERO, ID)) t1
ORDER BY ROWNUM * (:sensTri)
où champTri (string) et sensTri(integer) sont des variables que j'alimente ailleurs.

Par ex, en l'occurrence pour l'exemple que je vous ai expliqué, pour sensTri=-1 et champTri = 'AVOIR', j'aurais le tri descendant sur la colonne AVOIR.
Le pb est que pour des valeurs de la colonne AVOIRS comme suit:
-10
-5
0
10
20
..
j'aurai un tri descendant de la forme
-10
-5
20
10
0

je ne vois pas d'ou provient le souci du moment qu'un simple order by marche parfaitement, donc ce ne peut pas etre un problème de string et d'integer!
j'ai essayé pour d'autres colonnes et ca marche très bien.. ya que les nombres négatifs qui foutent le b...

Merci