Bonjour,
Sous Oracle j'ai une requête du genre :
Code :
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 :
WITH MaTable AS ( SELECT 1 AS nm, '1ABC' AS nom FROM dual union ALL SELECT 2 , '2BCD' FROM dual union ALL SELECT 3 , 'CDE3' FROM dual union ALL SELECT 4 , 'DEF4' FROM dual ) SELECT nm, nom FROM MaTable ORDER BY nlssort(nom, 'nls_sort=Binary') ASC; NM NOM 1 1ABC 2 2BCD 3 CDE3 4 DEF4
|
Message édité par Deamon le 18-05-2010 à 16:51:46