J'ai une requête oracle suivant:comment faire pour par une colonne to_char
SELECT a.USER_ID,
c.first_name,
c.last_name,
TO_CHAR(b.logon_date, 'MM/DD/YYYY HH:MI:SS am') logon_date,
NVL(TO_CHAR(b.logoff_date, 'MM/DD/YYYY HH:MI:SS am'), '') logoff_date,
a.session_id
FROM table a,
table b,
table c
WHERE a.row_id >= start_row
AND a.row_id <= end_row
AND a.session_id = b.session_id
AND a.USER_ID = b.USER_ID
AND a.USER_ID = RTRIM(LTRIM(c.USER_ID))
ORDER BY logoff_date DESC
requête fonctionne bien si je retire la order by
Je veux order
les résultats de cette requête dans DESC
ordre basé sur logoff_date
sur lequel je me sers to_char
pour en faire une date avec le temps am/pm
Je donne suite comme essayé order_by
NVL(TO_CHAR(b.logoff_date, 'MM/DD/YYYY HH:MI:SS am'), '')
mais les résultats reviennent comme:
03/03/2010 12:59:37 am
03/03/2010 12:53:12 pm
03/03/2010 12:41:40 pm
03/03/2010 12:19:38 am
03/03/2010 11:34:04 am
03/03/2010 10:41:47 am
03/03/2010 10:16:16 pm
03/03/2010 10:14:45 pm
03/03/2010 09:59:54 am
03/03/2010 07:36:17 pm
Qu'advient-il si vous exécutez le SQL comme indiqué. Vous indiquez que la requête fonctionne correctement si vous supprimez la commande, ce qui signifie qu'elle ne fonctionne pas correctement lorsque vous l'avez. – Craig
ça fonctionne bien = si je ne veux pas trier il ne fonctionne pas bien = si je veux trier – drake