[Résolu] Tri personnalisé avec "order by"

Tri personnalisé avec "order by" [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 18-05-2010 à 14:24:32    

Bonjour,

 

Sous Oracle j'ai une requête du genre :

Code :
  1. SELECT * FROM maTable ORDER BY code


Le problème c'est que code est de la forme xxx où x est une lettre ou un chiffre. Oracle me trie ça avec les chiffres après les lettres alors que je voudrais l'inverse. Est-ce possible de faire ça directement en SQL ou bien faut-il obligatoirement retrier mes données dans mon client qui reçoit le résultat ?

 

Merci de m'aider.

 

Edit : on m'a répondu sur un autre forum j'ai donc la solution.

 
Code :
  1. WITH MaTable AS
  2. (
  3. SELECT 1 AS nm, '1ABC' AS nom FROM dual union ALL
  4. SELECT 2      , '2BCD'        FROM dual union ALL
  5. SELECT 3      , 'CDE3'        FROM dual union ALL
  6. SELECT 4      , 'DEF4'        FROM dual
  7. )
  8.  SELECT nm, nom
  9.    FROM MaTable
  10. ORDER BY nlssort(nom, 'nls_sort=Binary') ASC;
  11.  
  12. NM    NOM
  13. 1    1ABC
  14. 2    2BCD
  15. 3    CDE3
  16. 4    DEF4


Message édité par Deamon le 18-05-2010 à 16:51:46
Reply

Marsh Posté le 18-05-2010 à 14:24:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed