09.11.2007, 02:23
общий
это ответ
Здравствуйте, Stals!
Предлагаю создать доп.поле с нужным условием и уже по этому полю делать сортировку.
Приложение:
Пример: сначала вывести все записи с 0, потом - отрицательные (выбор по абсолютному значению), затем - положительные. Можно сделать так:SELECT ЧИСЛО , DECODE(SIGN(ЧИСЛО), 0, 100000 , -1, ABS(ЧИСЛО)*10000 , +1, ЧИСЛО) СОРТ FROM (SELECT -5 ЧИСЛО FROM DUAL UNION ALL SELECT -4 ЧИСЛО FROM DUAL UNION ALL SELECT -3 ЧИСЛО FROM DUAL UNION ALL SELECT -2 ЧИСЛО FROM DUAL UNION ALL SELECT -1 ЧИСЛО FROM DUAL UNION ALL SELECT 0 ЧИСЛО FROM DUAL UNION ALL SELECT 1 ЧИСЛО FROM DUAL UNION ALL SELECT 2 ЧИСЛО FROM DUAL UNION ALL SELECT 3 ЧИСЛО FROM DUAL UNION ALL SELECT 4 ЧИСЛО FROM DUAL UNION ALL SELECT 5 ЧИСЛО FROM DUAL)ORDER BY СОРТ DESC -- результат:0 100000-5 50000-4 40000-3 30000-2 20000-1 100005 54 43 32 21 1